Home Technical Talk

Effects based visibility optimization?

Hi,

I'm not an expert in technical game artistry, but i got an idea lookin' at this screenshot from Watch Dogs:

Watch-Dogs-2.jpg

The question is, does modern rendering optimization softwares take account the huge amounts of bloom, depth of field, lens flares and other effects that games today have? As far as i know, lighting effects aren't actual geometry so they aren't taken to account when doing stuff like occlusion culling, backface culling and such.

I think it could improve rendering performance if geometry behind those bloomy areas in the picture could be culled away completely. Maybe optimizer could check the transparency of the effect and adjust LOD accordingly? Maybe adjusting LOD based of the lighting intensity of the rendered image? There wouldn't be that much help for this particular image as the lights are so far away and meshes will be lodded anyway, but for lights/geometry that are close to camera, this would be very helpful.

Also depth of field could be used to adjust the LOD levels, not just for objects far away but up close to the camera.

This same idea would apply for the level of darkness in the game.
Why not optimize LOD levels according to the amount of blackness? Players won't see it, so why should the renderer?

As I said, I'm not expert in these things so it may very well be that these ideas are already used or not possible at all,
but i needed to share my thoughts. What do you think?

Replies

  • ivanzu
    Options
    Offline / Send Message
    ivanzu polycounter lvl 10
    There is a chance that code like that would be really hard on CPU so games would freeze and lag.
  • walreu
    Options
    Offline / Send Message
    ivanzu wrote: »
    There is a chance that code like that would be really hard on CPU so games would freeze and lag.

    How it would differ from ,lets say, occlusion culling or backface culling? Cpu is doing that stuff all the time..
  • LoTekK
    Options
    Offline / Send Message
    LoTekK polycounter lvl 17
    Well the thing is, bloom, tone mapping, dof/bokeh, etc, are all post process effects that are applied to the framebuffer after the geometry has already been culled (for backfacing/occlusion). At this point it's acting at the pixel level, on the image that's about to be sent to the display.

    Theoretically your LOD-by-darkness might work, assuming you're not using a deferred solution, but how would you go about determining whether to drop a LOD or two? Average light level affecting the mesh? Average light level vs actual coverage? You'd most likely spend more cycles trying to determine all that than you'd save by LODing down (not to mention that these days, your typical bottleneck isn't going to be triangle performance).
  • ivanzu
    Options
    Offline / Send Message
    ivanzu polycounter lvl 10
    walreu wrote: »
    How it would differ from ,lets say, occlusion culling or backface culling? Cpu is doing that stuff all the time..

    Yeah but its not calculating a bunch of other LOD stuff.
  • walreu
    Options
    Offline / Send Message
    LoTekK wrote: »
    Well the thing is, bloom, tone mapping, dof/bokeh, etc, are all post process effects that are applied to the framebuffer after the geometry has already been culled (for backfacing/occlusion). At this point it's acting at the pixel level, on the image that's about to be sent to the display.

    Damn, youre right.
    Could it be possible to questimate, like if a lamp would be X amount of distance away from the player, optimizer would know how much bloom it would produce and adjust the lod levels around it accordingly? i hope you can figure out what im trying to say here.. im really not pro with all this. :D

    So the thing is, maybe the calculations could be done same time as other culling stuff using erm.. assumptions. Example! :

    When playing Gears of war you press aiming button and camera zooms close to player and player/weapon etc gets blurred. Now, we know every time that when you press that button, it will zoom in and get all doffed out. There's really no other way around. In that case, LOD could be adjusted based on the dof.. right?
    Theoretically your LOD-by-darkness might work, assuming you're not using a deferred solution, but how would you go about determining whether to drop a LOD or two? Average light level affecting the mesh? Average light level vs actual coverage? You'd most likely spend more cycles trying to determine all that than you'd save by LODing down (not to mention that these days, your typical bottleneck isn't going to be triangle performance).

    I havent read about deferred rendering. How it makes it different?

    Yeah. I was thinking if it could be possible to calculate, at least, the areas where there's no light at all and lod down those areas heavily. And yeah because triangles aren't the concern usually, i think using lod for at least textures based on levels of darkness, that would make all sense.

    Could it be calculated with comparing light intensities and their distances to objects?

    Damn i would love to start experimenting with these things in Unity, but i don't have time for personal project right now..
Sign In or Register to comment.