Wednesday 12 November 2008

Worksheet 4 with Comments

CS1004a Honours Project Worksheet 4

Introduction:
Fluid flows are everywhere from rising smoke, clouds and mist to the flows of rivers and oceans. Because one of the major goals of games is to immerse players into plausible virtual worlds, it is desirable to include fluid flows into games engines (Stam 2003). Therefore there are a lot of techniques which have been developed over years that have varying effects.
With the improvements in graphics and processors over the years what is the best technique to use for the current generation of hardware?
The aim of this project is to find out through research and experimentation what is the best technique to use to produce real-time fluid simulations which has good visuals and performs fast?

I think it sounds like a good topic to approach, since many games have been lacking a realistic looking fluid system and only focusing on speed. Bioshock was the last game I remember seeing where the developers spent a lot of time on the realistic visuals for that water.

Issues:
There are a lot of dedicated applications out there which use algorithms which strive for accuracy and are fairly complex and time consuming but these applications need to be physically accurate. However in computer graphics and in games what matters most is that the simulations both look convincing and are fast (Stam 2003). So the main issue I want to address is what is the best technique to use for fluid simulation in games? This technique must look visually good and doesn’t slow the frame rate greatly

Sounds like good way of going around it, but I was wondering if the time scale allows you to look over the wide range of fluid systems. Would modelling the dynamics of a river allow you enough time look over cloud systems?

Research Question:
“Can fluid reactions with objects be accurately simulated in a real-time environment using numerical techniques?”

Addressing the Question:
Research into existing work on fluid simulation is one of the first steps that must be carried in order to find the best techniques or techniques for implementing an application demo. Also possible improvements will be looked into for these techniques.
An application demo will be created in either Direct X or OpenGL in order to answer the question. An application demo will first be designed to show a 2D version of a fluid where the technique decided during the research will be used to show how fluid reacts when it comes into contact with stationary objects. Then the 2D version will be expanded into a 3D application and will show how the fluid reacts when objects are dropped into the fluid.

Would a varying scene including different object and landscapes be feasible for the different types of fluids?

Progress:
So far I have done a lot of research into the techniques that are out there. I have read a lot into the techniques in both Jos Stam and Nick Fosters papers on fluid dynamics. These techniques have given me some ideas on what equations are good to use to represent certain physical properties of fluid. They have also talked a lot on Navier-Stoke equations which have influenced what I need to research as it has come apparent that these are helpful to simulate the properties of fluid.

Although it may be lacking in technical details I believe high end graphics development programs such as 3ds Max might show examples and features that could be used for a template in your application.

References:

Stam, J. 2003. Real-Time Fluid Dynamics for Games. [online] Available from: http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/GDC03.pdf [Accessed 05 November 2008]

Wednesday 5 November 2008

05/11 Meeting with Dr Lucas

Had a meeting with Dr Lucas today. Seems to be most of my worrys to rest regarding my research question being unique. Was informed that in honours year it's not about coming up something new but doing scholar research on a subject and being able to write up on it well.

Also had a discussion regarding my RQ which I happy with which has been put into Worksheet 3.

Plans for next week:
Get the presentation ready.
Read up of Navier Stoke equations and how Jos Stam used them for fluid simulation.

Worksheet 3

Introduction

The aim of this project is to take a look into current methods and techniques for fluid simulation used within games and see what single or combination of techniques is best in terms of visually and performance wise.

Motivation

Fluid flows are everywhere: from rising smoke, clouds and mist to the flow of rivers and oceans. Because one of the major goals games is to immerse players into plausible virtual worlds, it is desirable to include flows into games engines (Stam 2003). Therefore games developers are interested in finding out what are the best techniques to use to accurately simulated fluids within their games. I believe that having accurate simulating water is something which is also expected from consumers within games now a days and knowing what the best techniques are for producing such simulations something that I am interested in knowing and understanding. Obtaining the knowledge of fluid simulation is something that can be quite versatile as well as some of the techniques used for fluid are used for simulating smoke and fire.

Research Question

“Can fluid reactions with objects be accurately simulated in a real-time environment using numerical techniques?”

Addressing the Question

The first thing that will be done will be looking into the techniques that are currently being used and have been investigated for real-time fluid dynamics and see how they look and perform. For each of the techniques that I find they were be a number of test will be carried out to see if visually looks like fluid and if it acts correctly with an object. Also I will look into improve techniques or combining techniques together to prove an ideal fluid simulation.

Resource Requirements

In order for me to answer my research question I will intend to create a program in possibly OpenGL or Direct X which will use a numerical technique to represent fluid. Initially I will start by creating a 2D scene for the fluid and have objects placed so the user can see the fluid reacting when it interacts with the objects. Once I have created this scene I will intend to expand on it to make a 3D scene where users can move the fluid and drop objects into the fluid and seeing the reaction on the screen.

References and Bibliography

Stam, J. 2003. Real-Time Fluid Dynamics for Games. [online] Available from: http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/GDC03.pdf [Accessed 05 November 2008]

Jensen, L.S and Golias, R. 2001. Deep-Wate Animation and Renderingr. [online] Available from: http://www.gamasutra.com/gdce/2001/jensen/jensen_01.htm [Accessed 05 November 2008]
Bart, A., et al. 2007.Adaptively sampled particle fluids. In ACM SIGGRAPH 2007 papersACM, San Diego, California.

Winter, E And Larsson, M 2006. Go With The Flow -- Water Effects And Fluid Dynamics In Games. Game Developer, November 1, 21-28. http://www.proquest.com/ (accessed October 17, 2008).

Lengyel,E. 2004. Mathematics for 3D Game Programming and Computer Graphics. 2nd ed. Massachusetts: Charles River Media

Monday 3 November 2008

Working On Worksheet 3 and Presentation

Currently I'm working on Worksheet 3 to get myself prepare for the presentation on Monday 17th November.

Somethings seem to be coming about my research question which is it seems that I need to work on it alot more as it something that seems to be done before and fluid simulation is a topic which has had alot done to it which I believe may be a problem.

Just sent out an email to Dr Lucas about having another meeting with him regarding my Research Question and also plan to talk about the presentation aswell.

Worksheet 2 with comments

Honours Project Worksheet 2
Michael Daglish 0500981

Comments by Stuart McGaw

1.) Formulate a research question for your project. Details on the research question can be found in presentation 1 in the module folder.

Can fluid be accurately simulated when forces are applied and when objects are dropped into it?

2.) When developing a research question you must produce a question that can be answered by performing literature research, practical experimentation and critical analysis. The question should also focus the activities of your project.

a) What is the focus of your project?
How to accurately simulate fluid within a game engine.

b) What information do you need to find out about?
What are the existing techniques used to simulate fluid. How fluid react in real life and the physics behind it.

c) What Experimental work do you need to perform?
An application will be created which will contain some fluid of some sort and the user will be able to apply wind to fluid and see the reaction. Also the application will allow the user to drop objects into the fluid as well.

3.) How will the information that you obtain in 2 allow you to answer the research question?

The information that is obtained will help me answer the research question as I will find out what happens to fluid when forces are applied and objects are dropped in it. So I will know what fluid should act and researching into existing techniques will be able to find out if fluid can be accurately simulated.

Fluid dynamics is an areas in which a lot of work has already been done (though there’s still a lot to do), for example the PhysX physics engine has in-built fluid dynamics simulation (see here for a video example of fluid in a vessel which is ruptured then collapses into the fluid). I couldn’t find any examples of wind acting on fluids in PhysX but I know wind can be simulated in PhysX perhaps you would be best experimenting within that framework so you are not starting absolutely from scratch? Good luck with all the fun maths this is going to involve.