Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. # Visibility Control in Plasma
  2.  
  3. There are several mechanisms for controlling the visibility of objects in Plasma, both for artistic and technical/performance reasons. This is a (non-exhaustive) list of them.
  4.  
  5. ## FadeOpacityMod
  6.  
  7. This modifier will cause an object to fade its opacity when the centre of the object is behind other geometry. It can be used for some cool artistic effects, but probably has no significant impact on performance.
  8.  
  9. In korman this is an "Opacity Fader (Line of Sight)".
  10.  
  11. ## DistOpacityMod
  12.  
  13. This modifier will cause an object to fade its opacity based on the camera distance. I think the best example of this is the lamp flares by the city Ferry Terminal, which gradually fade in opacity as you get further away. It's mostly for artistic effects, probably has no impact on performance.
  14.  
  15. In korman this is an "Opacity Fader (Distance)"
  16.  
  17. ## Occluder
  18.  
  19. Occluders are (conceptually) pieces of geometry that block a large area of view. They cause any objects whose bounding box is entirely behind them to not be rendered. One example is the high rock walls in Kemo/garden that block out the view to the other parts of the Age. Zandi's trailer in the Cleft also has an occluder in the shape of an elongated cube.
  20.  
  21. In practice, occluders need to be modelled as their own objects in Blender. They are not currently supported by korman?
  22.  
  23. If your Age has natural features that obscure large swaths of geometry, occluders would be a low-effort way to automatically prevent those hidden objects from being rendered. Note that occluders are a bit expensive to calculate at runtime, so you'll want to use a few big ones rather than several small ones.
  24.  
  25. ## VisRegion
  26.  
  27. This gives you very fine grained control over exactly where objects are visible, but is much more effort to set up. Effectively you need to define convex regions, attach a VisRegion modifier to them, and then tell each object which regions it should be visible in.
  28.  
  29. ## LOD
  30.  
  31. Haven't figured this out, but there should be some way of using bounding boxes and Level-Of-Detail to swap low-poly meshes for high-poly ones.
  32.  
  33. This is **not** used for the fake buildings in the city, those are handled via VisRegions.
  34.  
  35. ## RelevanceRegions (NOT for visibility)
  36.  
  37. Including this here just to clear up some confusion: RelevanceRegions are a way to tell the client which parts of the Age are "relevant" for it to keep track of. Essentially you define a bunch of regions, and have a csv text file that states which regions are "relevant" from a given region. If something happens in a region that isn't relevant, the client will basically ignore it.
  38.  
  39. This is mostly useful for multiplayer Ages, where you don't need the client trying to keep track of avatar positions and animation states for avatars that you can't see.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement