Jump to content

  • Log In with Google      Sign In   
  • Create Account


Fog Of War - CPU versus GPU


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 Alundra   Members   -  Reputation: 831

Like
0Likes
Like

Posted 06 January 2013 - 04:34 PM

Hi,
When doing Fog Of War, two method is possible.
One is to generate the shadow map by shader, the other is to generate the shadow map by CPU.
The problem is to test if an object is visible or not.
When generate the shadow map on the CPU, you have the pixel data, one projection inversed to get the coord and all is ok.
When doing on the GPU, you have to get back data to the CPU and check.

What is the good solution to handle that correctly ?
Thanks

Edited by Alundra, 06 January 2013 - 04:36 PM.


Sponsor:

#2 Vilem Otte   Crossbones+   -  Reputation: 1389

Like
0Likes
Like

Posted 06 January 2013 - 07:20 PM

There are many techniques...

 

Doing raycasts for visibility check of objects is also possibility. Pre-computing potential visibility set (f.e. for voxels in space) is another (which will be faster, except that you'll just take static objects into account (you have to precompute it)). Etc.

 

Also don't forget that you can actually check visibility on GPU and take back to CPU only list of visible objects (or a little harder - do it all on GPU).

 

There are also different approaches - Render dynamic objects to another render target and apply fog of war on them as post processing effect for example.

 

Anyway I can't tell you which of the solution is better-worse for you, it's up to you to pick the right one for your project. Pre-computing informations will be faster, doing raycast will work and will be pretty precise - but you'll waste some performance on it (when you'll have 1 000 000 objects on screen it'll take quite huge amount of performance. Doing different approaches (fog of war as post processing) has also it's advantage, it's independent on number of objects in scene - which might be an advantage. So, use the solution that is the most viable to you.


My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com


#3 Krohm   Crossbones+   -  Reputation: 3040

Like
0Likes
Like

Posted 07 January 2013 - 01:36 AM

In most RTS I recall with fog of war it appears there's not enough data in flight to justify a GPU feedback.

Last I played was company of heroes. It appears to me it's using an adjusted tile visibility of some sort.

My suggestion: implement the easier first. Then profile.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS