to find the pressure which is placed apon an item i will need to find out the physics of elasticity so that they can be applied to my end product for a more realistic approach. below are a few research i have found on this topic:
http://www.staff.amu.edu.pl/~romangoc/M10-elasticity.html
http://www.director-online.com/buildArticle.php?id=862
http://www.madsci.org/posts/archives/2000-05/957557758.Ph.r.html
Friday, 26 November 2010
Thursday, 21 October 2010
Proposal draft
Introduction
The overall aim for the project is to research and experiment into different methods of deforming meshes in real time while making the deforming meshes seem realistic. The program needs to be also optimised so that it doesn’t take a lot of memory to run and can be placed as minor effect file into a larger program. It must also have force working against the deformity to make sure that the deformity will be realistic and not force the object to deform completely and then later be able to return to there original state.
Motivation
The reason behind wanting to do this is because it relies heavily on the physics side of programming with a lot of the forces acting on the object means that there will be multiple equations necessary to get the object to behave like it should and I believe it will be amusing to find, manipulate and use these equations in the production of my project. The project is also based around the manipulation of the object’s meshes which is something I have very little practice in doing and so it will be interesting to see how I can possibly work with manipulating meshes of the loaded in objects.
I can see this being an interesting project to others as it will be based around the manipulation of objects this itself is something not used often in games and if I can get the program to run at a good optimised rate then it could possibly be used within an engine to simulate the changing of objects shapes and size.
Research question
Is it possible to produce an optimized program which can allow the user to deform a rendered object and that object to return to its original state in real time?
Addressing the question
To answer this question research must been done into the different methods of changing meshes in real-time in a program. As of this time I have already found multiple methods and from the ones of which I have found so far the radial basis function method seems the most suitable for what I am trying to produce. While this method would be useful for producing my product it does not have sort of interaction par moving the camera with the user which is something which I want to include in my end product. This means that I will need to look into the different equations used to find the forces which affect the object when pressure is placed onto it. These equations must also be flexible so that the coefficient in the pressure placed on the object can be changed.
Although there are things already needing to be looked into, experimented with and implemented into a working product there still multiple ways of furthering answering the question at hand by introducing different effects and methods into the product. The first of which is by being able to change the texture of the object of which is being pushed on. This will have a different effect on the forces placed onto the object and thus the possibility of different outcomes (i.e. shattering the mesh instead of deforming). This means that to get this working I’ll need to look into the creating a setup where the textures of the objects can be chosen and the values of these will affect the outcome of the forces placed upon the object. I will also need to look into splitting meshes which will be complicated and while close to the wanted objective of this product is too much unnecessary work when the wanted product can be produced using easier methods. These ideas are possibilities of furthering the product and giving a better depth into answering the question asked for this product.
I will also need to experiment around with the methods for multiple reasons. First of all I will need to use trial and error to understand how the methods work and how I can change the program to fit to my criteria’s. The next thing I will need to experiment on is in ways of which pressure can be applied to object and the effects it has on the object. The force and pressure applied onto the object must act as realistically as possible and so I will need to test the equations to make sure they are producing a realistic outcome. Finally I’ll need to optimise the program so that the program could be easily implemented into another program and not take up too much memory while producing its effect. This means that certain lines of code will need to be taken out or changed to run smoother and optimising techniques will be needed to be implemented. These techniques need to be tested beforehand to make sure that they will affect the fps the way that I want it to.
Resource requirements
What I will need to run will be first a compiler preferably visual studio C++ and I will also need an API to write my program. I will probably write my program in opengl but will also take directx into context as well. Using these I will be able to produce my final product.
While I have an overall idea on how to make my meshes deform I still need to do a lot more research into the subject to do this I will most probably need the use of multiple books to find out some of the necessary equations needed to make the deforming of the meshes as realistic as possible. I will also need the internet to find tutorials on specific problems or to find scholar papers which are relatively close to my own project so I can further my research into the methods of which can be used to achieve my goal and thus either find a better method in getting my end result or improving on the method which I at the moment plan on using.
There are also other things which could also help with the production of the end product. These being mainly objects of which the program plans to imitate. The first which would be imitated will be a stress ball so it would be best if I get hold of stress ball. By using the stress ball as an example I can then test the program to make sure that the program is doing what it is supposed to be doing by comparing it to its real-life object. This will allow me to easily produce a more realistic end product.
References and Bibliography
(Chris Wojtan 2009, Guinot 2006, Noe 14th August 2009)
Chris Wojtan, N. T., Markus Gross, and Greg Turk. 2009. Deforming meshes that split and merge. [online]. SIGGRAPH. Available from: http://www.cc.gatech.edu/~wojtan/topo_goop/topo_goop.html [Accessed 29th September 2009].
Guinot, J. 2006. oZone3D.net Tutorials: Mesh Deformers in GLSL. [online]. oZone3D.net. Available from: http://www.ozone3d.net/tutorials/mesh_deformer.php [Accessed 29th September 2010].
Noe, K. 14th August 2009. Computer Graphics Lab: Noe's tutorial on deforming 3D geometry using RBFs. [online]. Alexandra Institute. Available from: http://cg.alexandra.dk/2009/08/14/deforming-geometry-using-radial-basis-functions/ [Accessed 29th September 2010].
The overall aim for the project is to research and experiment into different methods of deforming meshes in real time while making the deforming meshes seem realistic. The program needs to be also optimised so that it doesn’t take a lot of memory to run and can be placed as minor effect file into a larger program. It must also have force working against the deformity to make sure that the deformity will be realistic and not force the object to deform completely and then later be able to return to there original state.
Motivation
The reason behind wanting to do this is because it relies heavily on the physics side of programming with a lot of the forces acting on the object means that there will be multiple equations necessary to get the object to behave like it should and I believe it will be amusing to find, manipulate and use these equations in the production of my project. The project is also based around the manipulation of the object’s meshes which is something I have very little practice in doing and so it will be interesting to see how I can possibly work with manipulating meshes of the loaded in objects.
I can see this being an interesting project to others as it will be based around the manipulation of objects this itself is something not used often in games and if I can get the program to run at a good optimised rate then it could possibly be used within an engine to simulate the changing of objects shapes and size.
Research question
Is it possible to produce an optimized program which can allow the user to deform a rendered object and that object to return to its original state in real time?
Addressing the question
To answer this question research must been done into the different methods of changing meshes in real-time in a program. As of this time I have already found multiple methods and from the ones of which I have found so far the radial basis function method seems the most suitable for what I am trying to produce. While this method would be useful for producing my product it does not have sort of interaction par moving the camera with the user which is something which I want to include in my end product. This means that I will need to look into the different equations used to find the forces which affect the object when pressure is placed onto it. These equations must also be flexible so that the coefficient in the pressure placed on the object can be changed.
Although there are things already needing to be looked into, experimented with and implemented into a working product there still multiple ways of furthering answering the question at hand by introducing different effects and methods into the product. The first of which is by being able to change the texture of the object of which is being pushed on. This will have a different effect on the forces placed onto the object and thus the possibility of different outcomes (i.e. shattering the mesh instead of deforming). This means that to get this working I’ll need to look into the creating a setup where the textures of the objects can be chosen and the values of these will affect the outcome of the forces placed upon the object. I will also need to look into splitting meshes which will be complicated and while close to the wanted objective of this product is too much unnecessary work when the wanted product can be produced using easier methods. These ideas are possibilities of furthering the product and giving a better depth into answering the question asked for this product.
I will also need to experiment around with the methods for multiple reasons. First of all I will need to use trial and error to understand how the methods work and how I can change the program to fit to my criteria’s. The next thing I will need to experiment on is in ways of which pressure can be applied to object and the effects it has on the object. The force and pressure applied onto the object must act as realistically as possible and so I will need to test the equations to make sure they are producing a realistic outcome. Finally I’ll need to optimise the program so that the program could be easily implemented into another program and not take up too much memory while producing its effect. This means that certain lines of code will need to be taken out or changed to run smoother and optimising techniques will be needed to be implemented. These techniques need to be tested beforehand to make sure that they will affect the fps the way that I want it to.
Resource requirements
What I will need to run will be first a compiler preferably visual studio C++ and I will also need an API to write my program. I will probably write my program in opengl but will also take directx into context as well. Using these I will be able to produce my final product.
While I have an overall idea on how to make my meshes deform I still need to do a lot more research into the subject to do this I will most probably need the use of multiple books to find out some of the necessary equations needed to make the deforming of the meshes as realistic as possible. I will also need the internet to find tutorials on specific problems or to find scholar papers which are relatively close to my own project so I can further my research into the methods of which can be used to achieve my goal and thus either find a better method in getting my end result or improving on the method which I at the moment plan on using.
There are also other things which could also help with the production of the end product. These being mainly objects of which the program plans to imitate. The first which would be imitated will be a stress ball so it would be best if I get hold of stress ball. By using the stress ball as an example I can then test the program to make sure that the program is doing what it is supposed to be doing by comparing it to its real-life object. This will allow me to easily produce a more realistic end product.
References and Bibliography
(Chris Wojtan 2009, Guinot 2006, Noe 14th August 2009)
Chris Wojtan, N. T., Markus Gross, and Greg Turk. 2009. Deforming meshes that split and merge. [online]. SIGGRAPH. Available from: http://www.cc.gatech.edu/~wojtan/topo_goop/topo_goop.html [Accessed 29th September 2009].
Guinot, J. 2006. oZone3D.net Tutorials: Mesh Deformers in GLSL. [online]. oZone3D.net. Available from: http://www.ozone3d.net/tutorials/mesh_deformer.php [Accessed 29th September 2010].
Noe, K. 14th August 2009. Computer Graphics Lab: Noe's tutorial on deforming 3D geometry using RBFs. [online]. Alexandra Institute. Available from: http://cg.alexandra.dk/2009/08/14/deforming-geometry-using-radial-basis-functions/ [Accessed 29th September 2010].
Friday, 8 October 2010
Radial basis functions
Looking through the research i have found so far for my personal project has linked me to multiple different possible ways to produce my final product. At the moment the best way i can see in producing is by using the radial basis function.
The basic set up of the radial basis functions is that a specific object has a set amount of control points placed into the object. These control points are then moved which will cause the mesh of the object to deform to its new shape (dependent on the control points are). The deformity is found by the use of the radial basis function which calculates the displacement of the control points with the meshes previous form and then manipulates the vector coordinates of the objects points before rendering the new shape of the object.
This style from the looks of it could be the easiest to produce a product and also optimize it so multiple objects can be manipulated in real time inside the program but at the same time considering other ways of producing deforming objects makes this style of manipulating an object the least efficient especially considering that the object will be manipulated by the user the control points may not be able to manipulate the part of which the user is changing the shape of the object.
The basic set up of the radial basis functions is that a specific object has a set amount of control points placed into the object. These control points are then moved which will cause the mesh of the object to deform to its new shape (dependent on the control points are). The deformity is found by the use of the radial basis function which calculates the displacement of the control points with the meshes previous form and then manipulates the vector coordinates of the objects points before rendering the new shape of the object.
This style from the looks of it could be the easiest to produce a product and also optimize it so multiple objects can be manipulated in real time inside the program but at the same time considering other ways of producing deforming objects makes this style of manipulating an object the least efficient especially considering that the object will be manipulated by the user the control points may not be able to manipulate the part of which the user is changing the shape of the object.
Tuesday, 5 October 2010
Questions to answer
Since my original project ideas blog post i have found multiple research links into the my planned projects and from the research i have narrowed down my ideas from the 5 to a main one plus 2 back ups just in case the first falls through. I have also come up with an idea of the questions which need to be answered:
Question: Is it possible to produce a optimized program which can allow the user to deform a rendered object and that object to return to its original state in real time? (Main project idea)
(Can fluid object be forced to conform to another object parameters?
Can the shadows of an object be made to be affected by the light source of the program? (back up questions))
Now that we have a question to answer we must understand the reasoning behind the questions and what needs to be done to find the answer to this question:
What is the focus of your project?
To be able to produce a realistic object which the shape of the object can be affected by the users input.
What information do you need to find out about?
The physics behind the manipulation of objects in real-time and the ability to manipulate object meshes through coding.
What Experimental work do you need to perform?
I will need to experiment with different methods of manipulating objects and see which way is the best to work with for my project. I will also need to experiment on the different way of which the user will manipulate the object in real time.
I also believe that the question can be refined to include multiple object manipulation each with there own way in which they can be manipulated. such examples could be a bean bag and maybe possibly later getting glass to shatter.
Using the research that i will and have obtained for this question i will hopeful be able to produce a product which will allow the manipulation of multiple objects meshes in real time and that specific objects will be affected different to the force placed on them
Question: Is it possible to produce a optimized program which can allow the user to deform a rendered object and that object to return to its original state in real time? (Main project idea)
(Can fluid object be forced to conform to another object parameters?
Can the shadows of an object be made to be affected by the light source of the program? (back up questions))
Now that we have a question to answer we must understand the reasoning behind the questions and what needs to be done to find the answer to this question:
What is the focus of your project?
To be able to produce a realistic object which the shape of the object can be affected by the users input.
What information do you need to find out about?
The physics behind the manipulation of objects in real-time and the ability to manipulate object meshes through coding.
What Experimental work do you need to perform?
I will need to experiment with different methods of manipulating objects and see which way is the best to work with for my project. I will also need to experiment on the different way of which the user will manipulate the object in real time.
I also believe that the question can be refined to include multiple object manipulation each with there own way in which they can be manipulated. such examples could be a bean bag and maybe possibly later getting glass to shatter.
Using the research that i will and have obtained for this question i will hopeful be able to produce a product which will allow the manipulation of multiple objects meshes in real time and that specific objects will be affected different to the force placed on them
Wednesday, 29 September 2010
Research links
fluid motion- http://www.gamasutra.com/view/feature/1549/practical_fluid_dynamics_part_1.php
http://www.gamasutra.com/view/feature/1549/practical_fluid_dynamics_part_2.php
advanced shadow mapping - http://developer.download.nvidia.com/presentations/2008/GDC/GDC08_SoftShadowMapping.pdf
deforming objects -http://www.cc.gatech.edu/~wojtan/topo_goop/topo_goop.html
http://www.ozone3d.net/tutorials/mesh_deformer.php
http://cg.alexandra.dk/2009/08/14/deforming-geometry-using-radial-basis-functions/
http://www.koji-ohkitani.staff.shef.ac.uk/Jacobian.ver3.pdf
http://www.gamasutra.com/view/feature/1549/practical_fluid_dynamics_part_2.php
advanced shadow mapping - http://developer.download.nvidia.com/presentations/2008/GDC/GDC08_SoftShadowMapping.pdf
deforming objects -http://www.cc.gatech.edu/~wojtan/topo_goop/topo_goop.html
http://www.ozone3d.net/tutorials/mesh_deformer.php
http://cg.alexandra.dk/2009/08/14/deforming-geometry-using-radial-basis-functions/
http://www.koji-ohkitani.staff.shef.ac.uk/Jacobian.ver3.pdf
Project ideas
As of this time i have 5 ideas for my final product. These are mainly based around the psychics of a already produced world or rendering effects used to enhance the world itself. These ideas can be found below:
Psychics engine: This idea will be based around the moving and throwing objects with these objects having different shapes and different coefficients. This means that when the object is thrown it'll have different reaction to a different object (i.e. it may bounce at different heights).
Deforming objects; This idea is based around changing the shape in real time of an object using the users input. I want to try and create an object which will deform when the users puts force onto it and reform once the force has been removed from rather like a squeeze ball.
Advance shadow-mapping: This idea involves making shadows of an object move with the light source of the object so that the shadow is mapped in the correct position. The shadows will also be effected by how far away the object is from the light source (i.e. the closer the object is to the light source the stronger the shadow will be). I'd also like to introduce multiple light source which can and will produce multiple shadows for different objects.
Fluid motion: This idea is based around the introduction of water into my already produced terrain generation. The water will probably be introduced via rain and the water will either fill crevices or produce streams of which the water will run down.
Gore psychics: The final idea is based around the idea of fluid motion again but this time around blood leaving the body. This will be done by the user cutting at a bit of flesh which will cause blood to come pouring out of the wound produced. The amount of blood which can pour will be dependent on how deep the wound is. The wound can also cause the blood to either splatter or just run dependign on the force used to create the wound.
These are at the moment my ideas for a my end product and in coming days i will narrow it down to just one of these ideas. I will do some further research into all of them to make my decision of which will be my end product.
Psychics engine: This idea will be based around the moving and throwing objects with these objects having different shapes and different coefficients. This means that when the object is thrown it'll have different reaction to a different object (i.e. it may bounce at different heights).
Deforming objects; This idea is based around changing the shape in real time of an object using the users input. I want to try and create an object which will deform when the users puts force onto it and reform once the force has been removed from rather like a squeeze ball.
Advance shadow-mapping: This idea involves making shadows of an object move with the light source of the object so that the shadow is mapped in the correct position. The shadows will also be effected by how far away the object is from the light source (i.e. the closer the object is to the light source the stronger the shadow will be). I'd also like to introduce multiple light source which can and will produce multiple shadows for different objects.
Fluid motion: This idea is based around the introduction of water into my already produced terrain generation. The water will probably be introduced via rain and the water will either fill crevices or produce streams of which the water will run down.
Gore psychics: The final idea is based around the idea of fluid motion again but this time around blood leaving the body. This will be done by the user cutting at a bit of flesh which will cause blood to come pouring out of the wound produced. The amount of blood which can pour will be dependent on how deep the wound is. The wound can also cause the blood to either splatter or just run dependign on the force used to create the wound.
These are at the moment my ideas for a my end product and in coming days i will narrow it down to just one of these ideas. I will do some further research into all of them to make my decision of which will be my end product.
Sunday, 26 September 2010
Introduction
This blog which has been set up will be used to produce my personal project for the final year for the univeristy of abertay dundee and its course of computer games technology. This blog will be used to contain and hold all of my thoughts on what I can and need to do to produce my personal project and any research found into the matter at hand. As of this time I have a few ideas for which I could try and produce for my personal project. These will be posted at a later date.
Subscribe to:
Posts (Atom)