Results 1 to 11 of 11
  1. #1
    MSgt. Shooter Person
    Join Date
    Jan 2010
    Posts
    33

    Default Dynamic Occlusion System

    Quote Originally Posted by http://udn.epicgames.com/Three/VisibilityCulling.html
    Here are the culling methods listed in order they are applied to each primitive, which is also from least to most expensive in terms of rendering thread cost.
    • Distance culling
    • View frustum culling
    • Precomputed occlusion culling
    • Dynamic occlusion culling (hardware occlusion queries)

    ...
    Dynamic Occlusion System

    The dynamic occlusion system tracks visibility states for each primitive component and issues hardware occlusion queries based on heuristics to reduce the number of queries but increase culling effectiveness. The queries are read back from the GPU one frame later, so there is a one frame delay before an object is determined visible when coming around a corner, which can cause some popping. Occlusion queries are issued against the scene's depth buffer so both dynamic and static primitives can occlude, along with both opaque and masked materials. The dynamic occlusion system does not require any user setup to work, it is fully automatic.
    I'm quite disappointed in UDN being so vague about many of it's features. The only thing said about the system is what it is, and not a word about how to enable/disable it.
    If this feature indeed exists, it must be disabled by default, because I haven't seen it work at all. I made sure in viewport that I enabled "view culling/occlusion" while in wireframe and don't see any culling anywhere.

    Has anyone else figured out how to get this feature to work properly? I have no intention of releasing my game for mobile platforms, so I do not wish to use pre-computed visibility.

  2. #2
    Marrow Fiend
    Join Date
    Jun 2009
    Posts
    4,479

    Default

    It does work, and is on by default.
    Please don't send me private messages asking how to use UDK unless it has to do with my work, everything I can teach is already out there.

    I am not support, I am here to learn myself.

  3. #3
    MSgt. Shooter Person
    Join Date
    Jan 2011
    Posts
    424

    Default

    while in wireframe mode it wont cull anything

  4. #4
    MSgt. Shooter Person
    Join Date
    Jan 2010
    Posts
    33

    Default

    Quote Originally Posted by Graylord View Post
    It does work, and is on by default.
    Quote Originally Posted by ankangronto View Post
    while in wireframe mode it wont cull anything
    If it is disabled in wireframe, then how are you supposed to see it working? Being able to see the culling occur is pretty important in making sure the culling is actually occuring properly.

    What is the point of this option which I have selected?

  5. #5
    Palace Guard
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    3,939

    Default

    I remember an option somewhere in the editor that would show in 2D viewports which objects were rendered in the active viewport and which not. There is also a console command to stop updating the rendering/occlusion calculations at a point while allowing you to continue moving around the level and see everything rendered that was visible from the point where you started the command.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  6. #6
    MSgt. Shooter Person
    Join Date
    Jan 2010
    Posts
    33

    Default

    Is there a way to see this culling in perspective in a wireframe mode?

  7. #7
    Marrow Fiend
    Join Date
    Jun 2009
    Posts
    4,479

    Default

    I remember that being done in one of the 3d buzz tutorial videos, alas I have no idea how now.
    Please don't send me private messages asking how to use UDK unless it has to do with my work, everything I can teach is already out there.

    I am not support, I am here to learn myself.

  8. #8
    Iron Guard
    Join Date
    Aug 2006
    Location
    Canberra, AU
    Posts
    566

    Default

    Yea once you tick "view culling/occlusion" in perspective viewport, it should then show the culling happening in the orthographic viewports dynamically. There is no way to see it happening in perspective wireframe that I'm aware of, unless that's a new feature. However, in perspective in standard lit mode, you can type "freezerendering", and then fly around and you can see exactly what was rendered at the time, so you can see how well it's working that way.

    The GPU occlusion is pretty fast really, especially if you're doing PC. But always give everything a CullDistance anyway if possible. I've never used the precomputed vis but I've heard the results aren't fantastic and it takes a lot of memory.

  9. #9
    MSgt. Shooter Person
    Join Date
    Jan 2010
    Posts
    33

    Default

    Quote Originally Posted by Spoondog View Post
    Yea once you tick "view culling/occlusion" in perspective viewport, it should then show the culling happening in the orthographic viewports dynamically. There is no way to see it happening in perspective wireframe that I'm aware of, unless that's a new feature. However, in perspective in standard lit mode, you can type "freezerendering", and then fly around and you can see exactly what was rendered at the time, so you can see how well it's working that way.

    The GPU occlusion is pretty fast really, especially if you're doing PC. But always give everything a CullDistance anyway if possible. I've never used the precomputed vis but I've heard the results aren't fantastic and it takes a lot of memory.
    Thank you for the response. It does work with the 2D/orthographic displays, and if it is an accurate representation of the dynamic occlusion, it's not working very well on my landscape. It only removed one of the 4 components that make up my landscape, when one of the components is entirely out of view.

    Is there anyway to divide a component into more pieces or make it cull per quad?

  10. #10
    Iron Guard
    Join Date
    Aug 2006
    Location
    Canberra, AU
    Posts
    566

    Default

    Actually, I remember with terrain, the culling in the editor didn't represent the actual culling that happened in-game, so it may be the same with landscape (e.g. meshes occluded by terrain were occluded in-game but not in the editor culling preview). I would go to that spot in-game and make sure it's working as you expect with freezerendering (remember it uses the bounds of the component when checking visibility).


 

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Copyright ©2009-2011 Epic Games, Inc. All Rights Reserved.
Digital Point modules: Sphinx-based search vBulletin skin by CompletevB.com.