[CF-Devel] Fog Of War code in Gtk

crossfire-devel at archives.real-time.com crossfire-devel at archives.real-time.com
Wed May 26 01:21:02 CDT 2004


tchize wrote:

>
     
      That's true shading to grey is a problem with already grey items :)
     
     >
     
      The 3 solutions are 
     
     >
     
       1) darken all items too, so the grey looks darker grey (bad IMO)
     
     >
     
       2) detect when a picture is grey only (perhaps with a small amount of 
     
     >
     
      possible deviation for 'nearly grey' pictures, like shades of very light 
     
     >
     
      yellow items) and daken only those.
     
     >
     
       3) detect when a picture is grey and then play with saturation/hue (like 
     
     >
     
      increasing the yellow compound?) need to play a bit with it to see results
     
     
  Yeah - hard to see what #3 would look like.

  It would seem that figuring out greyness of an image shouldn't be that 
difficult - a simple averaging of all the color variance on the set pixels could 
be done, eg, something like:

  for xy loop {
	if nottransparent(xy) {
		++numsetpixels;
		maxcolordiff += MAXDIFF(r, g, b of pixel xy)
	}
  }

  averagecolordensity = maxcolordiff / numsetpixels

  If that density is below some threshold (which probably needs to be determined 
experimentally), treat it as greyscale.

  this also sort of works on the basis that an image that is all grey but has a 
few colorful pixels will probably get averaged out.


>
     
      I didn't notice while i messed with fow (cause i did quite quickly the various 
     
     >
     
      screenshot) but that's true the blur has problem. Seems the natural behaviour 
     
     >
     
      of eye is to try to fix the blur, which  obviously the eye can't, but can end 
     
     >
     
      up in headaches (and we don't want players with headaches, do we?)
     
     >
     
     
     >
     
      Removing non static object is an impossible thing to do with current protocol. 
     
     >
     
      But stay tuned... (did i ever say we should put the static part of the map 
     
     >
     
      client side?)
     
     
  probably, but I think that opens a can of worms that isn't worth the effort.

  The problem there are lots of objects which are somewhat static, but not 
really static.  The only true static objects are floors and walls (and even in 
those cases, may not be truely static, eg, weak walls or gold floors are obvious 
examples).

  So I think if you limit it to only truely static objects, you'd have the same 
issue of the fog not being that useful.

  And IMO, I really want fog to show all those not really static objects, but 
things that tend to remain the same (chairs, objects on the ground, etc).  All 
that fog is really acting as is a memory aid - after all, it isn't getting any 
info from the server the player doesn't already know - if you didn't have fog, 
the player could mimic it by doing screen captures and whatnot.

_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list