Cs4344 09/10 Lecture 5: Interest Management

487 views
406 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
487
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cs4344 09/10 Lecture 5: Interest Management

  1. 1. Lecture 5 Interest Management 22 February 2010 1
  2. 2. aka Relevance Filtering 2
  3. 3. aka Data Distribution Management 3
  4. 4. Idea: only need to update another player p if the update matters to p. 4
  5. 5. Aura / Area-of-Interest 5
  6. 6. Update of p matters to q if the auras of p and q intersect. 6
  7. 7. Foci (what a player can see) 7
  8. 8. Nimbi (where a player can be seen) 8
  9. 9. Update of p matters to q if the foci of p intersects nimbi of q. 9
  10. 10. need not be binary: can generalize to multi- level of interest depending on distance 10
  11. 11. Communication Abstraction 11
  12. 12. Multicast: send a message to a set of subscribers 12
  13. 13. Group: a channel to publish messages 13
  14. 14. A client can subscribe to/ join a group to start receiving messages from that group. 14
  15. 15. A client can unsubscribe from/leave a group to stop receiving messages from that group. 15
  16. 16. Anyone can send a message to a group (need not be a subscriber). 16
  17. 17. a group a subscriber 17
  18. 18. Distance-based Interest Management 18
  19. 19. Update of p matters to q if the p and q are within certain distance from each other 19
  20. 20. Calculating a distance-based AoI can be costly. 20
  21. 21. Cell-based Interest Management 21
  22. 22. Idea: approximate use bounding boxes 22
  23. 23. or approximate using cells 23
  24. 24. Each cell is a group. A subscriber can subscribe to multiple cells. A group can have multiple publishers. a group 24
  25. 25. Large cell: Redundant messages. Small cell: Large management overhead. 25
  26. 26. The white player will receive many messages he/she is not interested in. 26
  27. 27. Idea: we can dynamically partition the cells into smaller ones as needed. 27
  28. 28. Visibility-Based Interest Management 28
  29. 29. 29
  30. 30. Ideally one should consider occlusion (we focus on visual occlusion) 30
  31. 31. A player P is interested in (events generated by) an entity Q if P can see Q, and Q is near P. 31
  32. 32. Ideally one should consider occlusion (we focus on visual occlusion) 32
  33. 33. Ray Visibility Interest Management 33
  34. 34. Object-to-Object Visibility 1. Expensive 2. Frequent re-calculations. but gives exact visibility. 34
  35. 35. A player P is interested in (events generated by) an entity Q if P can see Q’s cell, and Q is near P. 35
  36. 36. Object-to-Cell Visibility 36
  37. 37. Object-to-Cell Visibility 1. Less expensive 2. Less frequent re-calculations 3. Less accurate 37
  38. 38. When player moves, still need to recompute visible cells. 38
  39. 39. A player P is interested in (events generated by) an entity Q if P’s cell can “see” Q’s cell, and Q is near P. 39
  40. 40. i.e., there exists in a point in P’s cell that can see a point in Q’s cell, and Q is near P. 40
  41. 41. Cell-to-Cell Visibility 41
  42. 42. Cell-to-Cell Visibility 1. Much Less expensive 2. Calculate once! but even less accurate. 42
  43. 43. Computing Cell-to-Cell Visibility 43
  44. 44. Check if there exist two points, one in each cell, that can see each other (can draw a line without passing through occlusion) 44
  45. 45. Trivial case: if two cells are adjacent and the boundary is not completely occluded. 45
  46. 46. Build a graph of cells -- connect two vertices if they share a boundary and is visible to each other. 46
  47. 47. if two cells are not-adjacent, then for them to be visible to each other, there should exists a path between them, and ... 47
  48. 48. consider the non-occluded boundaries along path.. 48
  49. 49. The set of points on the left L and right R can be separated by a line. 49
  50. 50. The set of points on the left L and right R can be separated by a line. 50
  51. 51. Linearly Separable Point Sets no yes 51
  52. 52. We can model this problem as a set of linear equations. (x1,y1) ax + by - c = 0 (x2,y2) 52
  53. 53. Find a solution (a, b, c) for the following: ax1 + by1 - c > 0 for all (x1,y1) in L ax2 + by2 - c < 0 for all (x2,y2) in R The line that separates is ax + by - c = 0 (x1,y1) ax + by - c = 0 (x2,y2) 53
  54. 54. We can break into smaller cells if occlusion is not aligned with boundary of cells. 54
  55. 55. (Irregular) triangular cells can adapt to any polygonal occlusions. 55
  56. 56. Note: Rendering engine usually computes visibility information which we may be able to reuse in the Interest Management module. 56
  57. 57. Generalized Interest Management 57
  58. 58. Example: Interested in (i) objects around avatar (ii) buildings in a region (iii) the opponent’s avatar 58
  59. 59. Subscription can be based on any attributes (not just position) 59
  60. 60. We can view each object as occupying a multidimensional space (each attribute is a dimension) 60
  61. 61. A subscription specifies a region in the same space. 61
  62. 62. When an update region of an entity P intersects the subscription region of entity Q, updates of P is sent to Q. 62
  63. 63. How to test if two regions overlap in k-dimensional space? 63
  64. 64. Naive approach: O(nm) for n update region and m subscription region. 64
  65. 65. Dimensional Reduction If two regions overlap, then they overlap in each of the individual k dimension. 65
  66. 66. 66
  67. 67. How to test if two intervals overlap? 67
  68. 68. Step 1: Sort all end points and put into a list L 68
  69. 69. 69
  70. 70. Step 2: Scan from left to right. Remember all active subscription regions S and all active update regions U. 70
  71. 71. S1 Active Subscriptions: S1 71
  72. 72. S2 S1 Active Subscriptions: S1, S2 72
  73. 73. S2 S1 U1 Active Subscriptions: S1, S2 Active Update Regions: U1 73
  74. 74. We can determine the overlaps when we process the endpoint of a region. 74
  75. 75. S2 S1 U1 Active Subscriptions: S2 Active Update Regions: U1 S1 overlaps U1 75
  76. 76. S2 S1 U1 Active Subscriptions: none Active Update Regions: U1 S2 overlaps U1 76
  77. 77. 77
  78. 78. If we encounter the endpoint of a subscription region, then it overlaps with all active update regions. If it is the endpoint of an update region, then it overlaps with all active subscription region. 78
  79. 79. Sort-based approach: O(n log n + m log m) for sorting O(n + m) to scan 79
  80. 80. Note: storing overlap information still takes O(nm) since in the worst case there are O(nm) overlaps. 80
  81. 81. Temporal Coherence Changes to value of an attribute is small between two consecutive time steps. 81
  82. 82. Sort-based approach: O(n log n + m log m) to pre-sort the data O(n + m) for sorting (insertion sort) O(n + m) to scan 82
  83. 83. In fact, only regions that are swapped during insertion sort need to update their overlap set. 83
  84. 84. 84

×