Earlier quoted context omitted.
I don't think this is a great argument because everybody is looking for some level of realism in games, but you may want less than many others. Without any, you'd have no intuitive behaviors and the controls would make no sense. I'm not saying this just to be pedantic - my point is that some people do want some games to have very high levels of realism.
Some of the best games I've played in my life were the text based and pixel art games in MS DOS. Your imagination then had to render or enhance the visuals, and it was pretty cool to come up with the pictures in your head.
Simulating fluids, fire, and smoke in real-time
161–170 of 174 posts
Re: Simulating fluids, fire, and smoke in real-time
#162As a person who did a PhD in CFD, I must admit I never encountered the vorticity confinement method and curl-noise turbulence. I guess you learn something new every day! Also, in industrial CFD, where the Reynolds numbers are higher you'd never want something like counteracting artificial dissipation of the numerical method by trying to applying noise. In fact, quite often people want artificial dissipation to stabil…
> ... the requirements in computer graphics are more inclined towards making something that looks right instead of getting the physics right. That is exactly correct. That said, as something of a physics nerd (it was a big part of the EE curriculum in school) people often chuckled at me in the arcade pointing out things which were violating various principles of physics :-). And one of the fun things was listening to…
Reactions are an important part of this, it's not just how good an actor is, but how other character react to them. If they are ignored, it's like that character doesn't exist, has no effect, is inconsequential, doesn't matter... is not real.
In a fluid simulation, when water does not react to the shoreline, rocks in the water, columns supporting a pier etc, it is like the water (or the obstacles) don't exist. In this sense, the water (or the obstacles) "aren't real".
For example, the water in Sea of Thieves looks magnificent... but because it doesn't interact (it's procedural), it doesn't feel real. It isn't real.
A further problem here with water is that it's difficult to make a continuous fluid that is consistent and isn't realistic, because the basic principles of fluid are so very very simple: conservation of mass, conservation of momentum.
[ Of course, you can still vary density, gravity. There are other effects beyond these: viscosity, surface tension. Also, compressible fluids, different reynolds numbers, adiabatic effects, behaviour at non-everyday temperatures, pressures, scales, velocities, accelerations etc. ]
There are also simplifications, like depth-averaging (Shallow Water Equations aka St Venant), but again, it's hard to vary it and yet remain self-consistent.
Cellular methods - similar to conway's game of life but for fluid - maybe are an exception, because thet are self-consistent - but pretty far from "water", because not lack momentum (and aren't continuous).
The final issue is error: simulations are never perfectly self-consistent anyway, because they must discretize the continuous, which introduces error. In engineering, you can reduce this error with a finer grid, until it too small to matter for your specific application. For computer graphics, it only needs to be perceivably" self-consistent - and perhaps pixel size is one measure of this, for the appearance* of consistency, in area/volume, acceleration, velocity, displacement (...though, we can perceive sub-pixel displacement, e.g. an aliased line.)
Re: Simulating fluids, fire, and smoke in real-time
#163Earlier quoted context omitted.
> ... the requirements in computer graphics are more inclined towards making something that looks right instead of getting the physics right. That is exactly correct. That said, as something of a physics nerd (it was a big part of the EE curriculum in school) people often chuckled at me in the arcade pointing out things which were violating various principles of physics :-). And one of the fun things was listening to…
Yes, consistency. Similar in scifi/fantasy, where an absurd conceit is believable if internally consistent, i.e. self-consistent. (I also call it principled ) Too much ad hoc prevents suspension of disbelief. Reactions are an important part of this, it's not just how good an actor is, but how other character react to them. If they are ignored, it's like that character doesn't exist, has no effect, is inconsequential,…
Re: Simulating fluids, fire, and smoke in real-time
#164Earlier quoted context omitted.
You'll be able to understand the equations I guess. The hard part is the numerical analysis: how do you prove your computations will: 1/ reach a solution (badly managed computations will diverge and never reach any solution) 2/ reach a solution that is close to reality ? For me that's the hard part (which I still don't get). You could start with Saint Venant equations, although they look complicated they're actually…
Regarding your two questions, some terms you could look up are: Courant number, von Neumann stability analysis, Kolmogorov length and time scales With respect to 2, the standard industry practice is a mesh convergence study and comparing your solver's output to experimental data. Sadly, especially with Reynolds-averaged Navier Stokes, there is no guarantee you'll get a physically correct solution.
Re: Simulating fluids, fire, and smoke in real-time
#165If you like this, you'll also enjoy Ten Minute Physics, especially chapter 17 "How to write an Eulerian Fluid Simulator with 200 lines of code." https://matthias-research.github.io/pages/tenMinutePhysics/i...
Re: Simulating fluids, fire, and smoke in real-time
#166Does anyone have any recommendations for a former math major turned SWE to get into CFD simulations? I find this material fascinating but it's been a while since I've done any vector calculus or PDEs so my math is very rusty.
I used to work at NASA (contractor) doing this. One thing, get a job in the field. If you really want to, apply to Marshall Space Flight Center and / or Ames (Top500: Aitken [#85, 9.07 PFlops], Pleiades [#132, 5.95 PFlops], Electra [#143, 5.44 PFlops] systems) on either the Federal or Contractor side. GRC, LARC, and JSC also have some. At least a few years ago, the Contractor / Federal integration was actually quite…
1. What am I looking for in a job description that would indicate i'd be working on CFD simulations?
2. What would make me a compelling applicant? This seems very different than the distributed systems/recommendation system work that I have a lot of experience in.
Thanks again!
Re: Simulating fluids, fire, and smoke in real-time
#167Earlier quoted context omitted.
I used to work at NASA (contractor) doing this. One thing, get a job in the field. If you really want to, apply to Marshall Space Flight Center and / or Ames (Top500: Aitken [#85, 9.07 PFlops], Pleiades [#132, 5.95 PFlops], Electra [#143, 5.44 PFlops] systems) on either the Federal or Contractor side. GRC, LARC, and JSC also have some. At least a few years ago, the Contractor / Federal integration was actually quite…
This is very helpful thank you. I tried looking at a few job pages on those links but can't seem find any open SWE positions. Couple of follow up questions: 1. What am I looking for in a job description that would indicate i'd be working on CFD simulations? 2. What would make me a compelling applicant? This seems very different than the distributed systems/recommendation system work that I have a lot of experience in…
2. A background in distributed systems is actually very good for this field, but high-performance computing (HPC) is a bit different than other kinds of distributed computing, largely because if a node fails or communication breaks down in some way, it is easier to just kill the job. There's no need to make it fail gracefully. Some of your distributed computing knowledge will be extremely valuable but other parts will never come up.
I suggest taking some time and getting familiar with Message Passing Interface (MPI). It is the standard used for distributed memory programming in HPC applications. Almost all of these programs use MPI at least in part. There are several good tutorials online. I recommend [1]. A strong background in MPI is invaluable in a lot of these codes, especially if you can master non-blocking communication.
Learning Fortran may help with some projects and be useless for others. It might be worth the time to at least learn some so that the terminology is not foreign.
I'd also add that many of these jobs are difficult to get even if you have a PhD in the field. Many projects only hire when there is a real need for a new person (or when somebody retires, etc.). Timing the market is an unfortunately reality here. Good luck!
Re: Simulating fluids, fire, and smoke in real-time
#168Earlier quoted context omitted.
Not being a graphics person, is this what hardware ray tracing is, or is that something different?
Rayteacing doesn't simulate light, it simulates a very primitive idea of light. There's no diffraction, no interference patterns. You can't simulate the double-slit experiment in a game engine, unless you explicitly program it. Our universe has a surprising amount of detail. We can't even simulate the simplest molecular interactions fully. Even a collision of two hydrogen atoms is too hard - time resolution and space…
There are other effects (most notable volume scattering), which could be significant for the rendered image and which are simulatable with raytracing, but are usually neglected for various reasons, often because they are computationally expensive.
Re: Simulating fluids, fire, and smoke in real-time
#169Earlier quoted context omitted.
I used to work at NASA (contractor) doing this. One thing, get a job in the field. If you really want to, apply to Marshall Space Flight Center and / or Ames (Top500: Aitken [#85, 9.07 PFlops], Pleiades [#132, 5.95 PFlops], Electra [#143, 5.44 PFlops] systems) on either the Federal or Contractor side. GRC, LARC, and JSC also have some. At least a few years ago, the Contractor / Federal integration was actually quite…
This is very helpful thank you. I tried looking at a few job pages on those links but can't seem find any open SWE positions. Couple of follow up questions: 1. What am I looking for in a job description that would indicate i'd be working on CFD simulations? 2. What would make me a compelling applicant? This seems very different than the distributed systems/recommendation system work that I have a lot of experience in…
https://www.cfd-online.com/Jobs/
Many of the positions unfortunately are for grad students and postdocs, but there are a lot of CFD software developer positions posted here. It is a good place to check periodically to see what is available.
Good luck!
Re: Simulating fluids, fire, and smoke in real-time
#170Earlier quoted context omitted.
This is very helpful thank you. I tried looking at a few job pages on those links but can't seem find any open SWE positions. Couple of follow up questions: 1. What am I looking for in a job description that would indicate i'd be working on CFD simulations? 2. What would make me a compelling applicant? This seems very different than the distributed systems/recommendation system work that I have a lot of experience in…
I hate making two posts, but I remembered there is also an CFD industry job board that you may find useful: https://www.cfd-online.com/Jobs/ Many of the positions unfortunately are for grad students and postdocs, but there are a lot of CFD software developer positions posted here. It is a good place to check periodically to see what is available. Good luck!