Patent Publication Number: US-9892546-B2

Title: Pursuit path camera model method and system

Description:
FIELD 
     The present invention relates generally to camera navigation models, and more particularly to a method and system for a pursuit path camera model for games and simulations. 
     BACKGROUND 
     The “background” description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly or impliedly admitted as prior art against the present disclosure. 
     Present camera navigation models are utilized in games and simulations to be parameterized and manipulated in a variety of ways. These camera navigation models may be used as real-time devices and may include capabilities to function as static cameras as well as dynamic cameras, in which a particular object may be tracked in the corresponding game or simulation. Problems can arise in camera navigation models when the corresponding games and simulations are streamed from a server to a client device. For instance, streaming camera navigation models can become subject to issues including network latency, late packet arrival, and client side buffer underflow. 
     SUMMARY 
     In an exemplary aspect, a method of pursuit path camera model navigation includes, providing, via processing circuitry of at least one server, at least one future viewpoint located at a first location and at least one current viewpoint located at a second location and calculating a first prefetch region including one or more viewcells and one or more visibility even packets, the first prefetch region corresponding to the first location of the future viewpoint and the second location of the current viewpoint. The method further includes receiving commands to modify the first location of the at least one future viewpoint to a third location at a first velocity, calculating a navigational intent of the future viewpoint based on the commands, and calculating a second prefetch region including the viewcells and the visibility event packets by collapsing the calculated first prefetch region into the second prefetch region, the second prefetch region corresponding to a predicted pursuit path based on the calculated navigational intent. 
     In certain exemplary aspects, a non-transitory computer-readable storage medium, having stored thereon, instruction that when executed by a computing device, cause the computing device to perform a method of pursuit path camera model navigation including, providing, via processing circuitry of at least one server, at least one future viewpoint located at a first location and at least one current viewpoint located at a second location. The non-transitory computer-readable medium also includes calculating, via the circuitry, a first prefetch region including one or more viewcells and one or more visibility event packets corresponding to the one or more viewcells, the first prefetch region corresponding to the first location of the at least one future viewpoint and the second location of the at least one current viewpoint and receiving, via the circuitry, one or more commands to modify the first location of the future viewpoint to a third location at a first velocity. The non-transitory computer-readable medium further includes calculating, via the circuitry, a navigational intent of the at least one future viewpoint based on the one or more commands and calculating, via the circuitry, a second prefetch region including the one or more viewcells and the one or more visibility event packets by collapsing the calculated first prefetch region into the second prefetch region, the second prefetch region corresponding to a predicted pursuit path based on the navigational intent. 
     In some exemplary aspects, a pursuit path camera model navigation system includes an input device in communication with at least one server and including at least one of a joystick, an eye tracker and a gesture recognition device, wherein the at least one server includes processing circuitry configured to provide at least one future viewpoint located at a first location and at least one current viewpoint located at a second location. The circuitry can further be configured to calculate a first prefetch region including one or more viewcells and one or more visibility event packets corresponding to the one or more viewcells, the first prefetch region corresponding to the first location of the at least one future viewpoint and the second location of the at least one current viewpoint and receive one or more commands to modify the first location of the at least one future viewpoint to a third location at a first velocity via the input device. The circuitry can also be configured to calculate a navigational intent of the at least one future viewpoint based on the one or more commands and calculate a second prefetch region including the one or more viewcells and the one or more visibility event packets by collapsing the calculated first prefetch region into the second prefetch region, the second prefetch region corresponding to a predicted pursuit path based on the calculated navigational intent. The pursuit path camera model navigation system further includes at least one client device in communication with the at least one server and at least one graphical display. 
     In certain exemplary aspects, the method, conducted on a client device, of receiving at least one future visibility event packet from a server, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, includes calculating, via circuitry of the client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint. The method further includes transmitting, via the circuitry of the client device, information representing the position of the future viewpoint from the client device to the server, receiving, via circuitry of the server, the at least one future visibility event packet and transforming, via the circuitry of the server, the current viewpoint to follow, after a predetermined delay period, a path of the future viewpoint. 
     In some exemplary aspects, a method, conducted on a server, of prefetching at least one future visibility event packet to a client device, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, includes transmitting, via circuitry of the client device, the renderable graphics information representing the position of the future viewpoint from the client device to the server and transmitting, via circuitry of the server, the at least one future visibility event packet from the server to the client device. 
     In other exemplary aspects, a method, conducted on a first client device, of receiving at least one future visibility event packet from a server, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, includes calculating, via circuitry of a first client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint and transmitting, via the circuitry of the first client device, information representing the position of the future viewpoint from the first client device to the server. The method further includes transmitting, via circuitry of the server, at least one visibility event packet comprising renderable graphics information from the server to a second client device and transforming, via the circuitry of the first client device and circuitry of the second client device, the current viewpoint position to follow a path of the future viewpoint after a predetermined delay period. 
     In some exemplary aspects, a method, conducted on a client device, of receiving at least one future visibility event packet from a server, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by a future viewpoint, includes calculating, via circuitry of the client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint and displaying, via the circuitry of the client device, a representation of the future viewpoint at the client device. The method further includes transmitting, via the circuitry of the client device, information representing the position of the future viewpoint from the client device to the server and transforming, via circuitry of the server, the current viewpoint position to follow a path of the future viewpoint after a specified delay period. The method also includes halting, via the circuitry of the client device, the current viewpoint to a fixed position when a user inputs a braking command at the client device and transforming, via the circuitry of the client device, the future viewpoint to the fixed position of the current viewpoint in response to the braking command. 
     In certain exemplary aspects, a method, conducted on a client device, of receiving at least one partial future visibility event packet from a server, the at least one partial future visibility event packet including a subset of a complete future visibility event packet, the complete future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, includes calculating, via circuitry of the client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint. The method further includes transmitting, via the circuitry of the client device, information representing an orientation of the future viewpoint from the client device to the server and transmitting, via circuitry of the server, the at least one partial future visibility event packet that intersects a maximal view frustum from the server to the client device, wherein the maximal view frustum includes a volume of space intersected by the maximal view frustum of the future viewpoint during movement of the future viewpoint in the second viewcell. 
     In some exemplary aspects, a method, conducted on a server, of prefetching at least one partial future visibility event packet to a client device, the at least one partial future visibility event packet including a subset of a complete future visibility event packet, the complete future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by a future viewpoint, includes transmitting, via circuitry of the client device, information representing the orientation of the future viewpoint from the client device to the server. The method further includes transmitting, via circuitry of the server, the at least one partial future visibility event packet that intersects a maximal view frustum from the server to the client device, wherein the maximal view frustum includes a volume of space intersected by the maximal view frustum of the future viewpoint during movement of the future viewpoint in the second viewcell. 
     The foregoing paragraphs have been provided by way of general introduction, and are not intended to limit the scope of the claims. The described aspects, together with further advantages, will be best understood by reference to the following detailed description taken in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein: 
         FIG. 1  is an exemplary illustration of a pursuit path camera model navigation system, according to certain aspects; 
         FIG. 2A  is an exemplary illustration of an exemplary viewpoint and a corresponding exemplary view frustum having a 90 degree horizontal field of view, according to certain aspects; 
         FIG. 2B  is an exemplary illustration of a conservative current maximal viewpoint extent (CCMVE) of penetration into a viewcell from a known position after 166 ms of elapsed time using the exemplary view frustum having a 90 degree horizontal field of view, according to certain aspects; 
         FIG. 3  is an exemplary illustration of a conservative from-subregion frustum, according to certain aspects; 
         FIG. 4  is an exemplary illustration of conservative from-subregion frustum that results from viewpoint penetration into the viewcell over 166 milliseconds for a CCMVE subregion, according to certain aspects; 
         FIG. 5  is an exemplary illustration of an additional angular region of an extended frustum, according to certain aspects; 
         FIG. 6  is an exemplary illustration of a top-down view of a view frustum having a horizontal field of view of 90 degrees and undergoing rotation in the horizontal plane at a rate of 90 degrees per second, according to certain aspects; 
         FIG. 7  is an exemplary illustration of a server representation of client viewpoint position and orientation, according to certain aspects; 
         FIG. 8A  is an exemplary illustration of a predictive prefetch pursuit path from a first viewcell without camera model navigation prediction, according to certain aspects; 
         FIG. 8B  is an exemplary illustration of a predictive prefetch pursuit path from a second viewcell without camera model navigation prediction, according to certain aspects; 
         FIG. 9  is an exemplary illustration of a predictive prefetch pursuit path from a first viewcell to a second viewcell with camera model navigation prediction, according to certain aspects; 
         FIG. 10  is an exemplary illustration of an on-screen representation of a future viewpoint as viewed from within a perspective 3D environment, computed from the current viewpoint position and orientation, according to certain aspects; 
         FIG. 11  is an exemplary illustration of a perspective image, according to certain aspects; 
         FIG. 12  is an exemplary illustration of a perspective image, according to certain aspects; 
         FIG. 13  is an exemplary illustration of a perspective image, according to certain aspects; 
         FIG. 14  is an exemplary illustration of a perspective image, according to certain aspects; 
         FIG. 15  is an algorithmic flowchart of a server representation of a client viewpoint position and orientation process, according to certain exemplary aspects; 
         FIG. 16  is an algorithmic flowchart of a late visibility event packet prediction process, according to certain exemplary aspects; 
         FIG. 17  is an algorithmic flowchart of a late visibility event packet prediction process, according to certain exemplary aspects; 
         FIG. 18  is an algorithmic flowchart of a pursuit path camera model coop mode process, according to certain exemplary aspects; 
         FIG. 19  is a block diagram of a pursuit path camera model navigation system workflow, according to certain exemplary aspects; 
         FIG. 20  is a hardware block diagram of a server, according to certain exemplary aspects; 
         FIG. 21  is a hardware block diagram of a data processing system, according to certain exemplary aspects; and 
         FIG. 22  is a hardware block diagram of a CPU, according to certain exemplary aspects. 
     
    
    
     DETAILED DESCRIPTION 
     In the drawings, like reference numerals designate identical or corresponding parts throughout the several views. Further, as used herein, the words “a,” “an” and the like generally carry a meaning of “one or more,” unless stated otherwise. 
     Furthermore, the terms “approximately,” “approximate,” “about,” and similar terms generally refer to ranges that include the identified value within a margin of 20%, 10%, or preferably 5%, and any values therebetween. 
     In some exemplary aspects, there is described a method to reduce bandwidth requirements for visibility event packet streaming using a pursuit path camera navigation model in which a user exercises real-time control of a representation of a viewpoint and view frustum (also referred to as a viewpoint or camera), wherein the represented viewpoint that is currently being controlled in real-time by the user will later become the actual viewpoint and view frustum from which the current viewpoint is determined. Consistent with this method, the user may thus control, in real time, a representation of the viewpoint (called a future viewpoint, scout viewpoint, or probe viewpoint) while watching this representation from a first-person viewpoint. The viewpoint location and view direction vector of the first-person camera are set to be identical to earlier values of the future viewpoint, using a specified time delay. Thus, in exemplary aspects, the method specifies a camera model in which the future viewpoint is under real-time control of the user, and the current viewpoint, which is being used as a source of the view transformation matrix to generate the image, is under an imposed delay. 
     By employing the pursuit path camera model, the client user is effectively able to pre-signal navigational intent to the visibility event server, making much of the navigation-driven prefetch deterministic rather than probabilistic. By using certain, earlier, values of a future viewpoint position and orientation, the server navigation prediction algorithm does not need to employ “current” representations of the future viewpoint, which can only be represented on the server with a degree of position and orientation uncertainty that is a function of the value: (Round Trip Time−Elapsed Time). 
     For a pursuit path camera, in the portion of the camera path for which the elapsed time exceeds the Round Trip Time (RTT), navigation prefetch is deterministic. For these portions of the pursuit path, the visibility event server can prefetch a certain set of visibility event packets corresponding to the viewcell boundaries intersected by the space curve of the future viewpoint. The visibility event server can also prefetch certain subsets of the visibility event packets determined by the known view direction vectors exhibited by the future viewpoint during the traversal viewcell boundaries. 
     Effectively, on the server side, the method effects a collapse of the expanding, probabilistic positional and directional uncertainty vectors to a determined space curve and bounded range of view direction vectors. This substantially reduces the bandwidth required to deliver the visibility event packets and subpacket information needed to sustain the “current” viewpoint used to render a given environment. Additionally, this method allows the visibility event packet information to be delivered on time, even at high RTT latencies. 
     Using this pursuit path camera, a user maintains responsive control over the future viewpoint at a client device. This camera structure remains highly responsive since it is being controlled and rendered locally at the client device. An additional benefit of the current method of employing a pursuit path camera model is that the displayed representation of the future viewpoint is viewable by spectators of the given environment in a game or interactive content being streamed, and this displayed representation helps spectators prepare for camera translations and rotations that could otherwise be disorientating without some previous indication/preparation for the upcoming camera movement. This visual indicator of near-future camera direction changes can make the interactive content being controlled by others less disorienting and more enjoyable to spectators. 
     In some exemplary aspects, the delay between the real-time control input (which immediately affects the future viewpoint, since it is controlled and displayed locally) and the effect of the control input on the current viewpoint (which provides the viewpoint and view direction vector for image generation) can be set to a constant value. the delay is set to a constant value create a predictable delay in the control of the current viewpoint. Users quickly adapt to a predictable delay in a control scheme and can thereby maintain good control over the current viewpoint despite such a delay. 
     In other exemplary aspects, the delay between the user&#39;s real-time control input and the effect of this input on the current viewpoint can be varied. For example, in some aspects, as described herein, the delay between the real-time control of the future viewpoint and the effect on the current viewpoint used to determine the 3D environment is decreased at low future viewpoint linear velocity and/or low future viewpoint view direction vector angular velocity. Under the conditions of such low velocity, the bandwidth requirement for visibility event packet streaming decreases, and the imposed delay between the future viewpoint, which is controlled by the user at the client device, and the current viewpoint used to determine the display, can be reduced. 
     In other exemplary aspects, the delay can be adaptively increased. For example, as described herein, the delay can be increased under conditions of high visibility gradient (e.g., a high rate at which new surfaces become exposed per unit length traveled), which tends to correspond to high bandwidth requirements for visibility event packet streaming. The increased delay under these conditions creates greater predictability for navigation prefetch by increasing the length of the predictable, deterministic, navigation path used by the circuitry of the server, relative to the length of the probabilistic navigation path, which is affected by the RTT. For example, in a tactical shooter game, a high visibility gradient region of a modeled game environment can correspond to a region with a high “threat gradient,” e.g., the rate at which a navigating player becomes exposed to newly visible danger regions of the modeled game environment. In certain exemplary aspects, the increased delay is expressed to the user by an imposed slowing of the current viewpoint with no change in the locomotive performance of the displayed future viewpoint, which is still under responsive control of the user. In this aspect, the increased separation between the current viewpoint and the future viewpoint is an indication to the user to slow the future viewpoint and close the gap therebetween. 
     In other exemplary aspects, an indicator of such threats is displayed to the user/player in high threat gradient/visibility event gradient regions of the model. In some aspects, the player&#39;s intended route (the path of the future viewpoint) is displayed on a heads-up display or similar display. In this aspect, the portion of the player&#39;s intended navigational path that puts the player at risk from threat is displayed with a red color or other indicator of increased threat. If the player continues to progress along the navigational path (by not slowing the future viewpoint), then the game system responds by initiating an attack on the player. This attack slows the progress of the current viewpoint and quickly decreases the bandwidth requirement for visibility event packet streaming in a way that is consistent with the tactical game environment. By being tightly integrated with the game environment, this method of reducing bandwidth requirement for visibility event packet streaming is essentially unnoticeable to the player. 
     In some exemplary aspects, a future viewpoint is under real-time control of a user via a client device. The viewpoint location and/or view direction vector orientation of the future viewpoint is displayed at the client device using an axis or other symbolic or realistic indication, such as a heads-up display (HUD) element. In some aspects, this future viewpoint may be depicted as a small drone, a ground vehicle, or aircraft that is under control of the user and behind which the user will follow. Consistent with other aspects, a current viewpoint may be used to determine the view transformation for generating a first-person view or other perspective view. The location of the center of the current viewpoint may be displayed using a crosshair or other reticle, or its center indication may not be displayed and only inferred from the image generated. 
     In other exemplary aspects, the future viewpoint can be under real-time control of a first user of a first client device. As such, the first user of the first client device effectively drives the future viewpoint and information representing the position and view direction vector (orientation) of the future viewpoint is transmitted from the first client device to a server. In this aspect, the server receives the future viewpoint and the corresponding future viewpoint information from the first client device. The circuitry of the server can be configured to determine specific viewcell boundaries crossed by the future viewpoint and prefetch the visibility event packets corresponding to the future viewpoint, to both the first client device and a second client device. In exemplary aspects, the second user of the second client device is participating in the same game or simulation as the first user of the first client device. In this instance, the second user of the second client device may be a passive spectator, in which the current viewpoint of the second client device is following the future viewpoint controlled by the first user of the first client device. In other aspects, the user of the second client device has real-time control of a vehicle or avatar that is constrained to stay within a region of the model visible from the current viewpoint that is following the future viewpoint which is being driven by the first user of the first client device. 
     In certain exemplary aspects, the pursuit path camera model extends the method of a “chase plane” type of camera model to include games and simulations in which a physical object such as a plane is not being controlled. By using a virtual representation of a future viewpoint, the pursuit path camera can also be used for first-person games and simulations, where the current viewpoint follows the future viewpoint. 
       FIG. 1  is an exemplary illustration of a pursuit path camera model navigation system  100 , according to certain aspects. The pursuit path camera model navigation system  100  describes a pursuit path camera navigation model in which a current viewpoint and a future viewpoint are controlled in an environment to determine a predicted path of navigation. The pursuit path camera model navigation system  100  can include a network  102 , an input device  104 , a server  106 , and a client device  108 . The input device  104  can be one or more input devices  104  and is connected to the server  106  and the client device  108  via the network  102 . The input device  104  can include a joystick, an eye tracker, a gesture recognition device, and the like. The input device  104  can transmit inputs to the server  106 , to be processed by the processing circuitry of the server  106 . For example, the inputs can include moving the joystick forward, pulling the joystick backwards, leaving the joystick in a neutral position, turning the joystick to the left or the right, etc. The inputs of the input device  104  can correspond to a user&#39;s control of the future viewpoint, which is utilized to indicate a user-determined path of navigation. 
     The server  106  can include one or more servers  106  and is connected to the input device  104  and the client device  108  via the network  102 . The server  106  includes processing circuitry that can be configured to provide a current viewpoint and a future viewpoint. The future viewpoint can include one or more future viewpoints and can also be referred to as a reticle, a probe, an avatar, a future camera, a scout camera, a probe camera, a third person camera, and the like. The current viewpoint can include one or more viewpoints and can also be referred to as a current view direction, a camera view, an actual viewpoint, an actual camera, a current camera, a first person camera, and the like. The circuitry of the server  106  can also be configured to determine a first prefetch region including viewcells and visibility event packets corresponding to the viewcells based on the locations of the future viewpoint and the current viewpoint. The first prefetch region can include a region that is stored in memory of the server  106  and accessed by the circuitry of the server  106  prior to the processing and/or rendering of the region. The first prefetch region can include an area and/or a volume based on the locations of the future viewpoint and the current viewpoint. 
     The circuitry can further be configured to receive commands to modify the location of the future viewpoint at a particular velocity. The commands can correspond to inputs transmitted by the input device  104  to be received by the circuitry of the server  106 . The commands can provide local control of the future viewpoint and can include commands such as braking, coasting, acceleration, turning, and the like. For example, the command of braking can include an immediate deceleration of the future viewpoint in response to the joystick being pulled backwards. In another example, the command of coasting can include the current viewpoint coasting towards the location of the future viewpoint as a result of the joystick being moved to a neutral position. Further, in another example the command of acceleration can include an immediate acceleration of the future viewpoint in the response to the joystick being moved in the forwards direction. In certain aspects of the present disclosure, the current viewpoint can be configured to follow the location of the future viewpoint. As such, in some aspects the commands provide direct control of the future viewpoint location and indirect control of the current viewpoint. 
     The circuitry of the server  106  can further be configured to determine the navigational intent of the future viewpoint based on the commands. The circuitry can also be configured to collapse the first prefetch region to a second prefetch region. The second prefetch region can correspond to a predicted pursuit path based on the navigational intent. In collapsing the area and/or volume of the first prefetch region to a second prefetch region including a precise, navigational path, the pursuit path camera model navigation system  100  can utilize path prediction to reduce network latency as well as bandwidth requirements. 
     The client device  108  can include one or more client devices  108  and is connected to the input device  104  and the server  106  via the network  102 . The client device  108  can include a computer, a tablet, a smartphone, and the like. The client device  108  can also be in communication with a graphical display. The client device  108  can be configured to receive data from the server  106 . In certain aspects, the circuitry of the client device  108  can be configured to provide a user with visuals of the future viewpoint and the current viewpoint via the graphical display. In some aspects, the client device  108  can be configured to implement the methods of the pursuit path camera model performed via the circuitry of the server  106 . 
     The network  102  can include one or more networks and is connected to the input device  104 , the server  106 , and the client device  108 . The network  102  can encompass wireless networks such as Wi-Fi, BLUETOOTH, cellular networks including EDGE, 3G and 4G wireless cellular systems, or any other wireless form of communication that is known, and may also encompass wired networks, such as Ethernet. 
       FIG. 2A  is an exemplary illustration of an exemplary viewpoint and a corresponding exemplary view frustum having a 90 degree horizontal field of view  200 , according to certain aspects. The viewpoint  202  includes a corresponding view frustum  204  that includes a view direction vector for processing visibility event packets. The use of view direction vectors to compute smaller visibility event packets can be useful for streaming in-game-engine cutscene material with a fixed or limited view direction vector in 3D environments. In some aspects, the pursuit path camera model can be utilized in a walkthrough or flythrough visualization of the 3D environments (e.g., first-person, open-world games), and in this instance a view direction vector provides necessary navigational information as the user navigates through the 3D environment. In the general case, the view direction vector can be pointed in any direction for any viewpoint within any viewcell, corresponding to a view direction vector of a predetermined field of view. For example,  FIG. 2A  shows a viewpoint  202 , and a corresponding view frustum having a 90 degree horizontal field of view  204 . 
       FIG. 2B  is an exemplary illustration of a conservative current maximal viewpoint extent (CCMVE)  206  of penetration into a viewcell from a known position after 166 ms of elapsed time using the exemplary view frustum  210  having a 90 degree horizontal field of view  200 , according to certain aspects.  FIG. 2B  shows a top-down view of a 90 horizontal field of view frustum  210  enveloping the CCMVE-5  206 .  FIG. 2B  also shows a conservative current maximal viewpoint extent  206 , CCMVE-5, of penetration into the viewcell  208  from a known position after 166 ms of elapsed time. The CCMVE-5  206  is determined from a last known position and the maximal linear and angular velocity and acceleration of the viewpoint  202 . For example, for a typical 90 degree field of view such as the 90 degree from-point frustum  204  shown in  FIG. 2A , rotation rates of the frustum  204  approaching 130 to 140 degrees per second (such as that of typical multiplayer action video games) can cause difficulty in aiming, especially for people older than 30 years of age, and can cause difficulty in viewing for a spectator. However, a 90 degree yaw ability to scan the environment is more suitable (such as that of more narrative-driven, cinematic campaign-type video games), such that aiming can be improved, and viewing would be more enjoyable for a spectator. 
       FIG. 3  is an exemplary illustration of a conservative from-subregion frustum  300 , according to certain aspects.  FIG. 3  shows that the resulting conservative from-subregion frustum  304  is larger than the corresponding from-point frustum  306  at viewpoint  302 , even if it assumed that no view direction vector rotation has occurred, for a CCMVE-5  308  representative of predicted viewcell penetration at 166 ms into a viewcell region  310 . 
       FIG. 4  is an exemplary illustration of conservative from-subregion frustum that results from viewpoint penetration into the viewcell over 166 milliseconds for a CCMVE subregion  400 , according to certain aspects.  FIG. 4  shows a resulting conservative from sub-region frustum  402  that results from a CCMVE-5  404  representative of viewpoint penetration into the viewcell  406  sub-region over 166 milliseconds, together with rotation of the view direction vector 15 degrees to the right  408  or 15 degrees to the left  410  from an initial view direction vector orientation  412 . In this exemplary case, assuming a maximum view direction rotation rate of 90 degrees per second, if the ping latency between the client device  108  and the server  106  is 166 ms, the resulting 30 degree rotation would represent the uncertainty of the client device&#39;s  108  view direction vector  412 , as experienced by the server  106 . Accordingly, consistent with aspects of the present disclosure, the server  106  can employ the extended 120 degree frustum  402  (i.e., 120 degree predicted maximum from-subregion frustum) to determine the subset of the visibility event packet data to actually transmit to the client device  108 . This determination is made by determining the set of unsent surfaces of the corresponding visibility event packet that intersect the extended frustum. 
     In certain aspects, the visibility event packet data is precomputed using the method of first-order from region. The set of surfaces belonging to the corresponding PVS, incrementally maintained using the delta-PVS VE packets, that have not already been sent is maintained using the technique of maintaining the shadow PVS on the server  106 . In some aspects, the visibility event packets are precomputed assuming a full omnidirectional view frustum spanning 12.56 steradians of solid angle. As described, in certain exemplary aspects, the server  106  can employ the extended view frustum to cull portions of the precomputed visibility event packet that fall outside of the maximum possible predicted extent of the client device  108  view frustum, as determined from the ping latency and the maximal angular velocity and acceleration of the view frustum, as well as the maximum predicted extent of penetration of the viewpoint into the view cell. 
     This method ensures that all of the potentially visible surfaces are transmitted, while minimizing bandwidth requirements, by deferring the transmission of visibility event packet surfaces that are not within the current conservative extended frustum, or which happen to be backfacing with respect to the conservative current maximal viewpoint extent of penetration into the viewcell. In exemplary aspects, there is also described a method of using reduced level-of-detail models in periphery of extended view frustum to reduce bandwidth requirements for buffering against view direction vector rotation, i.e., level-of-detail vs. predicted exposure durations. 
     The above-disclosed methods comprise determining a conservative representation of the client device&#39;s  108  view frustum from the temporal reference frame of the server  106 , and using this extended frustum to cull those surfaces of the corresponding visibility event packet that could not possibly be in the client device&#39;s  108  view frustum. Consistent with aspects of the present disclosure, all of the transmitted surface information is represented at the highest level-of-detail. The visibility event packets can be encoded using geometric and surface models at a plurality of levels-of-detail, including a plurality of levels of geometric, texture, and other surface detail. In some aspects, however, the visibility event packets can be transmitted at a lower level-of-detail during periods of low bandwidth availability, and/or high bandwidth requirement, in order to maximize the probability that the information encoding newly exposed surfaces arrives on time (e.g., before the surface is actually exposed in the client device  108  viewport). Under some conditions, a visibility event packet containing relatively low level-of-detail surface information can initially be transmitted and later replaced by a visibility event packet containing higher level-of-detail information. This exploits the fact that the human visual system has lower visual acuity for newly exposed surfaces. 
       FIG. 5  is an exemplary illustration of an additional angular region of an extended frustum  500 , according to certain aspects. In exemplary disclosed aspects, this limitation of human visual performance (as well as the limited spatiotemporal performance of some robotic vision systems, including 3D map-matching navigation systems) can be exploited by sending low level-of-detail surface information if the surfaces fall outside the region of the extended view frustum, as determined, in exemplary aspects, using one or more of the following pieces of information: the ping latency, the maximum viewpoint translation velocity and acceleration, the maximum angular velocity, and acceleration of the view direction vector. For example,  FIG. 5  shows an additional angular region of extended view frustum  502  that spans an additional 15 degrees  504  on each side of the extended 120 degree frustum  402  shown in  FIG. 4 . 
     In exemplary aspects, the visibility event server transmits surfaces that fall in the subfrustum between 120 degrees and the maximally extended frustum of 150 degrees  504  at a lower level-of-detail than the other visibility event surface data that fall within the 120 degree extended frustum. The disclosed method thus provides a region of uncertainty between 90 degrees and 120 degrees of the subfrustum  506  and an additional buffer region against view direction vector rotation between 120 degrees and 150 degrees of the subfrustum  504 , which may be useful if the directional visibility gradient (e.g., the rate of exposure of surfaces per degree of view direction vector rotation) is high, or if the available bandwidth has a high degree of variability (e.g., network jitter). In such exemplary aspects, the low level-of-detail surface information can potentially be replaced by a higher level-of-detail representation. 
       FIG. 6  is an exemplary illustration of a top-down view of a view frustum having a horizontal field of view of 90 degrees and undergoing rotation in the horizontal plane at a rate of 90 degrees per second  600 , according to certain aspects.  FIG. 6  shows a top-down view of a view frustum having a horizontal field of view of 90 degrees  602 , and undergoing rotation in the horizontal plane at a rate of 90 degrees per second  604  in a direction from a first region  606  toward a fourth region  612 . In this exemplary case, surfaces to the right-hand side of the view frustum  602  will undergo incursion into the rotating frustum at a first region  606 , whereas surfaces near the left-hand extreme of the view frustum  602  at the first region  606  will exit the frustum  602  during frustum rotation. In the exemplary case shown in  FIG. 6 , those surfaces in the first region  606  have been in the frustum  602  for between 750 ms and 1000 ms as a consequence of exposure via the second region  608 , the third region  610  and the fourth region  612  during the rotation. In the second region  608 , for example, the surfaces have been in the frustum  602  for between 500 ms and 750 ms; in the third region  610 , the surfaces have been in the frustum  602  for between 250 ms and 500 ms; and in the fourth region  612 , the surfaces have been in the frustum  602  for between 0 ms and 250 ms. Surfaces that have been in the frustum  602  for only a brief period of time have also been exposed to the graphical display in communication with the client device  108  for a concomitantly brief period of time 
       FIG. 7  is an exemplary illustration of a server representation of client viewpoint position and orientation  700 , according to certain aspects. In certain aspects of the present disclosure, placing reasonable limits on the current viewpoint  702  and the viewpoint at the second location  706  enhances the predictability of the navigation. The limits can also decrease the area and/or volume of the predicted pursuit path of navigation  710 . The reasonable limits on locomotive performance can significantly decrease the transmission bandwidth requirement for visibility event packet streaming. In some aspects, the reduce transmission bandwidth requirement is used to transmit higher level-of-detail representations of newly visible surfaces, in the field of view, that are precisely under conditions when the user can perceive additional details via the graphical display in communication with the client device  108 . 
     The server representation of client viewpoint position and orientation  700  describes a pursuit path camera model in which the area and/or volume of navigational prediction collapses to a precise navigational pursuit path. The server representation of client viewpoint position and orientation  700  includes a current viewpoint  702 , a current frustum  704 , the viewpoint at a second location  706 , a second frustum  708 , a pursuit path of navigation  710 , deterministic prefetch  712 , a future viewpoint  714 , a future frustum  716 , and probabilistic prefetch  718 . The current viewpoint  702  follows a navigation path indicated by a future viewpoint  714 . In certain aspects of the present disclosure, the current viewpoint  702  follows two seconds behind a future viewpoint  714 , which is controlled by a user. The current viewpoint  702  can provide a first frustum  704  which indicates the field of view via the camera model of the current viewpoint  702 . 
     As commands are determined by the circuitry of the server  106 , via the reception of inputs from the input device  104 , the circuitry modifies the position of the future viewpoint  714  directly. The current viewpoint  702  can change location as a result of the movement of the future viewpoint  714 . For example, the current viewpoint  702  can move along a pursuit path  710  towards a second viewpoint  706 . The viewpoint at the second location  706  can include a second frustum  708  in which the field of via the camera model of the viewpoint at the second location  706  is processed. In some aspects, the fields of view are processed by the circuitry of the server  106  to be displayed via the graphical display in communication with the client device  108 . 
     The current viewpoint  702 , the viewpoint at the second location  706  and the future viewpoint  714  travel along the pursuit path  710 , which corresponds to the commands received by the circuitry of the server  106 . Additionally, the circuitry can be configured to pre-signal navigational intent with respect to the location modification of the future viewpoint  714 . The server representation of client viewpoint position and orientation  700  can predict navigational intent with minute uncertainty, such as 166 milliseconds. The low value of uncertainty allows network latency to be concealed in which camera motion can be anticipated through the processing of the predicted pursuit path corresponding to the modification of the future viewpoint  714 . 
     The position and orientation of the future viewpoint  702  is known to the server  106  with dilution of precision that reflects the 166 ms RTT between the client device  108  and the server  106 . The circuitry of the server  106  can determine the position and orientation of the future viewpoint to within ½*RTT, however, any visibility event packet transmitted from the server  106  to the client device  108  will be delayed an additional ½*RTT, making the effective precision bounds limited to RTT. Consistent with certain aspects of the present disclosure, it is assumed that the dilution of precision is determined by the full RTT. 
     In some aspects, the circuitry of the server  106  determines representations of the future viewpoint  714  and transmits the representations to the client device  108 . The representations can be less than RTT old (time elapsed from the current time) and have a dilution of precision that is a function of (RTT−elapsed time). The server  106  representation of the future viewpoint  714  includes a future frustum  716  and corresponding probabilistic prefetch  718  which can be utilized to determine a predictive path of uncertainty. This predictive path of uncertainty utilizes the probabilistic prefetch  718  in which the future viewpoint  714  position and orientation states less than RTT time has elapsed from the current time is shown as a dashed trajectory with a future frustum  716 , otherwise referred to as a superimposed navigational cone of uncertainty, reflecting the server&#39;s  106  effective uncertainty of position/orientation of the future viewpoint  714 . 
     As such, when the RTT exceeds the elapsed time, then the server&#39;s  106  representation of the current viewpoint  702  is undiluted by the RTT uncertainty, and the server&#39;s  106  representation of the deterministic prefetch  712  portion of the pursuit path  710  can be represented by the server  106  as a space curve with a specific view direction vector for each viewpoint on the space curve. 
     As limits are placed on the current viewpoint  702  and the viewpoint at the second location  706 , the predictability of navigation is enhanced. The area and/or volume of the corresponding current frustum  704  and the second frustum  708  is then decreased. The decrease in area and/or volume of the current frustum  704  and the second frustum  708  further places limits onto the predicted pursuit path of navigation  710 , effectively decreasing the bandwidth required for visibility event packet streaming. 
     Additionally, the predicted pursuit path  710  can be utilized to defer the transmission of significant portions of the visibility event packets. The visibility event protocol defined by a navigation driven predictive prefetch of precomputed visibility event packets is an incremental and progressive method of streaming content. In some aspects of the present disclosure, a series of partial and/or deferred visibility event packets that reflect predicted sequences of viewcell-to-viewcell boundaries are processed via the circuitry of the server  106 . As such, runtime conservative culling methods are employed in which some parts of a particular visibility event packet, corresponding to a first viewcell boundary, may go untransmitted, even as the viewpoint penetrates later transited viewcell boundaries. 
       FIG. 8A  is an exemplary illustration of a predictive prefetch pursuit path from a first viewcell without camera model navigation prediction  800 , according to certain aspects. The predictive prefetch pursuit path without camera model navigation prediction  800  describes the first stage of a server-side navigation prediction during an exemplary ground-constrained navigation. The predictive prefetch pursuit path without camera model navigation prediction  800  can include a current viewpoint  802 , an area of location uncertainty  804 , a navigation prediction region  806 , a first viewcell  808 , a second viewcell  810 , and a visibility event packet  812 . The current viewpoint  802  follows a navigation path indicated by a future viewpoint. In certain aspects of the present disclosure, the current viewpoint  802  follows two seconds behind a future viewpoint, which is controlled by a user. 
     An area of location uncertainty  804  surrounds the current viewpoint  802  and includes a radius corresponding to the network latency. As such, greater network latency can yield a greater area of location uncertainty  804  and vice-versa. The navigation prediction region  806  includes a region in which the circuitry predicts possible pursuit paths. In some aspects, the navigation prediction region  806  can include a function of the locomotive performance of the viewpoint and the network latency. 
     The navigation prediction region  806  can be utilized to indicate viewcells the pursuit path may pass through. In certain aspects, the viewcells of the navigation prediction region  806  indicates which viewcells will be included in the prefetch. In  FIG. 8A , at the current viewpoint  802 , the navigation prediction region  806  is located in a first viewcell  808  and a second viewcell  810 . The first viewcell  808  and the second viewcell  810  each include event visibility packets  812 . In this instance, a plurality of visibility event packets  812  can be included in each viewcell. 
       FIG. 8B  is an exemplary illustration of a predictive prefetch pursuit path from a second viewcell without camera model navigation prediction  800 , according to certain aspects. The predictive prefetch pursuit path without camera model navigation prediction  800  describes the second stage of a server-side navigation prediction during the exemplary ground-constrained navigation. The predictive prefetch pursuit path without camera model navigation prediction  800  can include a viewpoint at a second location  814 , an area of location uncertainty  816 , a navigation prediction region  818 , a first viewcell  808 , a second viewcell  810 , a third viewcell  820 , a fourth viewcell  822 , and a fifth viewcell  824 . The viewpoint at the second location  814  follows a navigation path indicated by a future viewpoint. The viewpoint at the second location  814  is located along the same navigation path as the current viewpoint  802 . In certain aspects of the present disclosure, the viewpoint at the second location  814  follows two seconds behind a future viewpoint, which is controlled by a user. 
     The area of location uncertainty  816  surrounds the viewpoint at a second location  814  and includes a radius corresponding to the network latency. The navigation prediction region  818  includes a region in which the circuitry predicts possible pursuit paths of the future viewpoint and the current viewpoint. The navigation prediction region  818  can be utilized to indicate viewcells the pursuit path may pass through. In certain aspects, the viewcells of the navigation prediction region  818  indicates which viewcells will be included in the prefetch. 
     In  FIG. 8B , at the second viewpoint location  814 , the navigation prediction region  818  is located in the first viewcell  808 , a third viewcell  820 , a fourth viewcell  822 , and a fifth viewcell  824 . Further, as  FIG. 8B  represents the second stage of a server-side navigation prediction during ground constrained navigation, the viewcells of  FIG. 8A  are also included in the processing of the predictive prefetch pursuit path without camera model navigation prediction  800 . Thus, the first viewcell  808 , the second viewcell  810 , the third viewcell  820 , the fourth viewcell  822 , and the fifth viewcell  824  sum together to form the regions included in the prefetch of the predictive prefetch pursuit path without camera model navigation prediction  800 . In this instance, five viewcells and the corresponding visibility event packets of each may be included in the prefetch region of the desired pursuit path of navigation. 
       FIG. 9  is an exemplary illustration of a predictive prefetch pursuit path from a first viewcell to a second viewcell with camera model navigation prediction  900 , according to certain aspects. The predictive prefetch pursuit path with camera model navigation prediction  900  describes a server-side navigation prediction during an exemplary ground-constrained navigation utilizing camera model navigation prediction. Further, the predictive prefetch pursuit path with camera model navigation  900  describes the utilization of the camera model navigation prediction to collapse the prefetch region of  FIGS. 8A and 8B  including five viewcells and the corresponding visibility event packets of each. The predictive prefetch pursuit path with camera model navigation prediction  900  can include a current viewpoint  802 , a viewpoint at a second location  814 , a first viewcell  808 , a fourth viewcell  822 , a first frustum  902 , a second frustum  904 , and a pursuit path of navigation  906 . 
     The viewpoint at the first location  802  follows a navigation path indicated by a future viewpoint. In certain aspects of the present disclosure, the current viewpoint  802  follows two seconds behind the future viewpoint that is controlled by a user. The current viewpoint  802  can provide a first frustum  902 , which indicates the field of view via the camera model of the current viewpoint  802 . The current viewpoint  802  can move along the navigation path towards a second location. The viewpoint at the second location  814  can include a second frustum  904  in which the field of via the camera model of the viewpoint at the second location  814  is processed. In some aspects, the fields of view are processed by the circuitry of the server  106  to be displayed via the graphical display in communication with the client device  108 . 
     The pursuit path of navigation  906  can be utilized to indicate viewcells which may be accessed by the circuitry of the server  106 . In certain aspects, the viewcells of the pursuit path of navigation  906  indicate which viewcells will be included in the predictive prefetch. At the current viewpoint  802 , the pursuit path of navigation  906  is located in a first viewcell  808 . At the second viewpoint location  814 , the pursuit path of navigation  906  is located in the first viewcell  808  and the fourth viewcell  822 . The first viewcell  808  and the fourth viewcell  822  each include event visibility event packets. In this instance, a plurality of visibility event packets  812  can be included in each viewcell. 
     The predictive prefetch pursuit path with camera model navigation prediction  900  collapses the prefetch region of  FIGS. 8A and 8B , including five viewcells, to a predictive prefetch region including only two viewcells. As such,  FIG. 9  includes a predictive prefetch region that collapses the area and/or the volume of the navigational prediction to a precise navigational path that spans a smaller number prefetch regions including a smaller number of viewcells and corresponding visibility event packets. 
       FIG. 10  is an exemplary illustration of an on-screen representation of a future viewpoint as viewed from within a perspective 3D environment  1000 , according to certain aspects. The on-screen representation of the future viewpoint as seen from the image computed from the current viewpoint position and orientation  1000  can include a current viewpoint  1002  and a future viewpoint  1004 . In certain aspects, the future viewpoint  1004  is depicted as a set of two axes, one axis indicating vertical and the other indicating the direction of motion of the future viewpoint  1004 . In some aspects, the direction of motion of the future viewpoint  1004  can correspond to the view direction of the current viewpoint  1002 . As described herein, the future viewpoint  1004  may be under real-time control of the user via an input device  104  in communication with a client device  108 . 
     The rendered image depicted in  FIG. 10  is viewed from within a perspective 3D environment, as generated by the circuitry of the server  106  and rendered on the client device  108  using the current viewpoint  1002  position and orientation. The current viewpoint  1002  that is used to generate the image is identical to the future viewpoint  1004  position and orientation determined by real-time input of the client user 2000 ms ago. That is, using the exemplary imposed delay of 2000 ms, the values of position and orientation for the future viewpoint  1004  position that were determined by real-time input via the input device  104  in communication with the client device  108  2000 ms ago, are now used as the values of the current viewpoint  1002  position and orientation to compute the current image. 
     The central crosshair or reticle  1002  in  FIG. 10  corresponds to a reticle representation of the current viewpoint position and reflects a first-person view projection center obtained using the viewpoint position and view direction vector that was input by the user via the input device  104  in communication with the client device  108  2000 ms ago. 
     Thus, in exemplary aspects, the user maintains responsive real-time control over the future viewpoint  1004  and the first-person like image is computed from the current viewpoint  1002 , which is determined from the future viewpoint  1004  and a suitable fixed or variable delay. 
     In exemplary aspects, the future viewpoint  1004  may be depicted as a graphical axial type structure in a heads up display manner as shown in  FIG. 10 . In certain aspects, the depiction of the future viewpoint  1004  is as a physical device such as a scout drone, or probe moving ahead of the current viewpoint  1002 . 
       FIG. 10  also shows an inset HUD map representation  1003  in the lower left hand corner of the image which depicts the location and orientation of the current viewpoint  1006  (unhatched arrow) and the location and orientation of the future viewpoint  1008  (hatched arrow). 
       FIG. 10  also depicts a bar graph with bars indicating the current velocity of the future viewpoint  1010  and the current distance from the future viewpoint to the current viewpoint  1012 . 
       FIG. 11  is an exemplary illustration of a perspective image  1100 , according to certain aspects. The perspective image  1100  is generated on the client device  108  using the viewpoint and view direction values of the future viewpoint  1004  shown in  FIG. 10 . In  FIG. 10 , the future viewpoint  1004  is controlled in real-time by the user via the input device  104  in communication with the client device  108 , and the image is generated using the viewpoint and view direction vector values of the future viewpoint  1004  that had been under real-time control of the user 2000 ms ago.  FIG. 11  illustrates the same modeled environment as that depicted in  FIG. 10 , but at a time 2000 ms later than shown in  FIG. 10 . In the exemplary aspect shown in  FIG. 11 , the user has stopped the future viewpoint 2000 ms before (e.g., at the time corresponding to  FIG. 10 ). Once the future viewpoint is stopped in real-time by the user, then the current viewpoint follows the pursuit path until it is congruent with the future viewpoint  1102 . In certain aspects, the time that it would take for the current viewpoint to catch up to the future viewpoint along the pursuit path is equal to the imposed delay, which in this example is 2000 ms. 
     In  FIG. 11 , the axes representing the future viewpoint become superimposed on the crosshair representing the current viewpoint  1102  used to compute the image, once the current viewpoint drifts to the location of the future viewpoint and comes to a stop.  FIG. 11  also illustrates two bar graphs which indicate that at the illustrated time, the future viewpoint has come to a stop  1106  and that the distance between the future viewpoint and the current client viewpoint has become zero  1108 . In other words, both the future viewpoint and the current viewpoint have come to a stop.  FIG. 11  also illustrates a HUD top-down map  1103  showing that the graphical representation of the future viewpoint (hatched) is superimposed over the current viewpoint  1104 . 
       FIG. 12  is an exemplary illustration of a perspective image  1200 , according to certain aspects.  FIG. 12  shows the same modeled environment as that depicted in  FIG. 11 , although at a time that is shortly after the time shown in  FIG. 11 . At this time, the user has accelerated the future viewpoint via an input device  104  in communication with a client device  108  from the stop condition shown in  FIG. 11  to a low velocity, which in this example is less than one meter per second. In the exemplary aspect shown in  FIG. 12 , at low camera velocities the pursuit path camera model system employs a normal first-person camera model with no imposed delay between the real-time controlled future viewpoint and the current viewpoint  1202  used to determine the image. As such, the current viewpoint is under real-time control of the user, without an imposed delay. At low velocities, there is less dilution of precision of the current viewpoint as known by the server  106  for any RTT latency between the server  106  and the client device  108 . Under these conditions, a normal first-person camera under real-time control can be employed without incurring a large increase in bandwidth requirement. 
       FIG. 12  also illustrates two bar graphs which indicate that at the illustrated time, the future viewpoint has been accelerated to a nonzero velocity  1206  that is below a velocity threshold for first-person camera control  1210 . As such, the distance between the future viewpoint and the current client viewpoint remains at zero  1208 .  FIG. 12  further illustrates a HUD top-down map  1203  showing that the graphical representation of the future viewpoint (hatched) is superimposed over the current viewpoint  1204 . In exemplary aspects, at higher camera velocities the real-time controlled camera is separated from the current camera used to generate the view, and the real-time controlled camera becomes the future viewpoint. 
       FIG. 13  is an exemplary illustration of a perspective image  1300 , according to certain aspects.  FIG. 13  is a perspective image showing a current viewpoint in which the user has indicated a braking input to control the future viewpoint via the input device  104  in communication with the client device  108 . In exemplary aspects, a braking input (for a fast reverse indication input to a joystick) immediately stops the current viewpoint. As such, the braking indication that is input by the user rapidly or immediately gives the user real-time control of the current viewpoint, making the current viewpoint stop. In exemplary aspects, the future viewpoint then moves to the location of the current viewpoint (for example by moving backwards along the pursuit path space curve represented by recorded values of the future viewpoint) until the future viewpoint is congruent with the current viewpoint  1302 .  FIG. 13  illustrates this exemplary aspect at the time that the future viewpoint reticle representation becomes congruent to the current viewpoint represented by the crosshair  1302 .  FIG. 13  also illustrates a top-down HUD map  1303  showing that the future viewpoint (hatched triangle in lower left HUD map) is superimposed over the current viewpoint  1304 . The bar graph of  FIG. 13  indicates that the future viewpoint has stopped  1306  and the current viewpoint has stopped, yielding a velocity of zero for each, and that no separation exists between the current viewpoint and the future viewpoint  1308 . 
       FIG. 14  is an exemplary illustration of a perspective image  1400 , according to certain aspects. As such,  FIG. 14  illustrates a perspective image generated from the viewpoint and view direction vector of the same current viewpoint as shown in  FIG. 12 .  FIG. 14  further illustrates a pursuit path (the path along which the current viewpoint  1402  is set to move) that is segmented into two portions. The first portion illustrates a safe portion  1406 , and the second portion corresponds to a threat portion  1408  of the pursuit path in which the circuitry of the server  106  has determined a high threat to be present. This threat portion  1408  is labeled “threat portion of pursuit path” and is indicated by a dashed line trajectory. In certain aspects of the present disclosure, this threat portion  1408  of the pursuit path may be indicated using alternate coloration or be given other visual emphasis. This visual indicator can warn the user to slow the future viewpoint  1404  so that the current viewpoint  1402  does not proceed to the threat portion  1408  of the pursuit path, instead proceeding to the safe portion  1406  of the pursuit path. In certain aspects of the present disclosure, the methods of pursuit path camera model navigation can display the graphical representation of the future viewpoint  1404  as an actual scout drone, vehicle, or robot, which is being controlled to sense danger ahead, or to engage threats ahead of the user at their current viewpoint  1402  location. 
       FIG. 14  also shows an inset HUD map representation  1410  in the lower left hand corner of the image which depicts the location and orientation of the current viewpoint  1412  (unhatched arrow) and the location and orientation of the future viewpoint  1414  (hatched arrow). 
       FIG. 15  is an algorithmic flowchart of a server representation of a client viewpoint position and orientation process  1500 , according to certain exemplary aspects. The server representation of client viewpoint position and orientation process  1500  describes camera navigation model including a current viewpoint and a future viewpoint in which the control of the current viewpoint and the future viewpoint is utilized to determine a predicted path of navigation. At step  1502 , the circuitry of the server  106  can be configured to provide a future viewpoint at a first location and a current viewpoint at a second location. The future viewpoint can include one or more future viewpoints and can also be referred to as a reticle, a probe, an avatar, a future camera, a scout camera, a probe camera, a third person camera, and the like. The current viewpoint can include one or more viewpoints and can also be referred to as a current view direction, a camera view, an actual viewpoint, an actual camera, a current camera, a first person camera, and the like. 
     At step  1504 , the circuitry can be configured to determine a first prefetch region based on the first location of the future viewpoint and the second location the current viewpoint. The first prefetch region can include viewcells and visibility event packets corresponding to the viewcells based on the first location of the future viewpoint and the second location of the current viewpoint. The first prefetch region can also include an area and/or a volume based on the locations of the future viewpoint and the current viewpoint. The first prefetch region can further include a region that is stored in memory of the server  106  and accessed by the circuitry of the server  106 , prior to the processing and/or rendering of the region at the client device  108 . 
     At step  1506 , a determination is made of whether a command has been received by the circuitry to modify the location of the future viewpoint. The command can correspond to one or more inputs transmitted by an input device  104  in communication with a client device  108  to be received by the circuitry of the server  106 . The commands can provide local control of the future viewpoint and can include commands such as braking, coasting, acceleration and the like. If the circuitry has received a command to modify the location of the future viewpoint, resulting in a “yes” at step  1506 , the pursuit path camera navigation process  1500  proceeds to step  1508 . Otherwise, if the circuitry has not received a command to modify the location of the future viewpoint, resulting in a “no” at step  1506 , the pursuit path camera navigation process  1500  proceeds to step  1510 . 
     At step  1508 , the circuitry can be configured to modify the first location of the future viewpoint to a third location. The circuitry can further be configured to receive commands to modify the location of the future viewpoint at a particular velocity. For example, the camera model can be adapted at intermediate velocities including jog velocities for dismounted navigation in close quarters, moderate driving velocities, and the like. In some aspects, at low velocities, such as 1 meter per second, the future viewpoint can be superimposed upon the position of the current viewpoint. In this instance, a normal first-person camera model is used. In certain aspects of the present disclosure, the current viewpoint can be configured to follow the location of the future viewpoint. As such, the commands provide direct control of the future viewpoint location and indirect control of the current viewpoint location. 
     At step  1510 , the circuitry can be configured to determine navigational intent of the future viewpoint, based on the first location and/or the third location of the future viewpoint. For example, the command of braking can include an immediate deceleration of the future viewpoint in response to the joystick being pulled backwards. In another example, the command of acceleration can include an immediate acceleration of the future viewpoint in response to the joystick being moved in the forwards direction. In another example, the command of coasting can include the current viewpoint coasting towards the location of the future viewpoint as a result of the joystick being moved to a neutral position. 
     At step  1512 , the circuitry can be configured to collapse the first prefetch region to a second prefetch region corresponding to a pursuit path that is predicted using camera model navigation. The second prefetch region can correspond to a predicted pursuit path based on the navigational intent determined via the circuitry of the server  106 . In collapsing the area and/or volume of the first prefetch region to a second prefetch region including a precise, navigational path, the pursuit path camera model navigation system  100  can utilize path prediction to promote the reduction of network latency enable the reduction of bandwidth requirements. 
       FIG. 16  is an algorithmic flowchart of a late visibility event packet prediction process  1600 , according to certain exemplary aspects.  FIG. 16  describes a method of controlling the progress of the current viewpoint under conditions in which late visibility event packet arrival from the server  106  to the client device  108  is predicted. The probability of late packet arrival during visibility event streaming increases when the client device  108  is receiving inputs via the input device  104  indicating navigation in regions of the modeled environment in which a high visibility gradient is present. In exemplary aspects, the local visibility gradient is a function of the rate at which surfaces become unoccluded when moving from viewcell to viewcell in the local region. 
     At step  1602 , a determination is made of whether late packet arrival is threatened at the client device. If the probability of a late visibility event packet arrival at the client device exceeds a predetermined value, resulting in a “yes” at step  1602 , the late visibility event packet prediction process  1600  proceeds to step  1604 . Otherwise, if the probability of a late visibility event packet arrival does not exceed the predetermined value, resulting in a “no” at step  1602 , the late visibility event packet prediction process  1600  proceeds to step  1608 . 
     At step  1604 , the current viewpoint is slowed during periods of possible late visibility event packet arrival at the client. 
     At step  1606 , an increased distance is displayed between the current viewpoint and the future viewpoint at the client device  108  via the circuitry of the server  106 . 
     At step  1608 , the current viewpoint is not slowed at the client device  108  via the circuitry of the server  106 . 
     In certain aspects of the present disclosure, the speed of the future viewpoint is not reduced under these conditions, but remains under real-time control of the user. The preferential slowing of the current viewpoint will result in an increase in the physical separation between the current viewpoint (again, being used to determine the viewing parameters to generate the current image) and the future viewpoint (still under complete control of the user). This increased separation is an indication to the user to slow the future viewpoint to maintain a maximum separation between the current viewpoint and the future viewpoint. This voluntary slowing realizes a feedback loop that will decrease the bandwidth requirement for visibility event packet streaming and prevent late visibility event packet arrival, while preserving responsive real-time control of the future viewpoint by the user. In other aspects, it can be possible for the speed of the future viewpoint to be quickly slowed if late packet arrival is threatened. 
       FIG. 17  is an algorithmic flowchart of a late visibility event packet prediction process  1700 , according to certain exemplary aspects.  FIG. 17  is a process describing an alternate method of controlling the progress of the current viewpoint under conditions in which late visibility event packet arrival from the server  106  to the client device  108  is predicted. The probability of late packet arrival during visibility event streaming increases when the user is navigating in regions of the modeled environment having a high visibility gradient. In exemplary aspects, the local visibility gradient is a function of the rate at which surfaces become unoccluded when moving from viewcell to viewcell in the local region. 
     At step  1702 , a determination is made of whether late packet arrival is threatened at the client device. If the probability of a late visibility event packet arrival at the client device exceeds a predetermined value, resulting in a “yes” at step  1702 , the late visibility event packet prediction process  1700  proceeds to step  1704 . Otherwise, if the probability of a late visibility event packet arrival does not exceed the predetermined value, resulting in a “no” at step  1702 , the late visibility event packet prediction process  1700  proceeds to step  1710 . 
     At step  1704 , an indication of threat is displayed along the intended navigational path. In certain exemplary aspects, the intended navigational path is displayed as the space curve representing the pursuit path trajectory between the future viewpoint (under real-time control of the user) and the current viewpoint (which is specified by an earlier future viewpoint but under an imposed delay). The portion of the pursuit path is displayed as a space curve connecting the future viewpoint/and the current viewpoint in a heads-up display on-screen, but with a warning color indicating the portion of the pursuit path on which there is increased threat. 
     At step  1706 , a determination is made of whether the user has slowed the future viewpoint sufficiently to prevent late packet arrival via the input device  104  in communication with the client device  108 . If the user is determined to not have sufficiently slowed the future viewpoint and therefore allow late packet arrival to occur, resulting in a “no” at step  1706 , the late visibility event packet prediction process proceeds to step  1708 . Otherwise, if the user is determined to have sufficiently slowed the future viewpoint, to prevent late packet arrival, resulting in a “yes” at step  1706 , the late visibility event packet prediction process proceeds to step  1702 . 
     At step  1708 , the circuitry of the server  106  is configured to transmit a warning or attack to the client device  108 . In certain aspects of the present disclosure, the warning or attack slows the user at the client device  108  and prevents late packet arrival. 
     At step  1710 , the circuitry of the server  106  is configured to transmit an indication of increased threat to the user via the client device  108 . 
     Referring to  FIG. 17 , in an adventure, first-person shooter, stealth, or tactical shooter game, or other interactive entertainment, the late visibility event packet prediction process  1700  exploits a natural congruence between the local visibility event gradient (rate at which surfaces become unoccluded with viewpoint motion) and the threat gradient (the rate at which a user becomes exposed to enemy positions from which it was previously occluded). Consequently, the late visibility event packet prediction process  1700  allows implementation of the pursuit path camera model in a way that is consistent with the game mechanic of a stealth game or shooter game, and its use as a method to prevent late packet arrival can be transparent to the user. 
       FIG. 18  is an algorithmic flowchart of a pursuit path camera model coop mode process  1800 , according to certain exemplary aspects.  FIG. 18  describes a process in which a first user of a first client device and a second user of a second client device participate in the same game or simulation. In some aspects, the first user controls the first client device via a first input device and the second user controls the second client device via a second input device. At step  1802 , the user of the primary client device exercises real-time control of the future viewpoint. The real-time control of the future viewpoint can include commands such as braking, coasting, acceleration and the like. 
     At step  1804 , the viewpoint location and view direction vector orientation of the future viewpoint is transmitted from the first client device to the server  106 . 
     At step  1806 , the circuitry of the server  106  can be configured to prefetch visibility event packets corresponding to the viewcell boundaries crossed by the future viewpoint of the first client device. In some aspects, the server  106  prefetches the visibility event packets to the first client device, the second client device, or both. 
     At step  1808 , visibility event packets including a representation of the future viewpoint are transmitted from the circuitry of the server  106  to the first client device and the second client device. The representation of the future viewpoint can be configured to assist the second user of the second client device in following the future viewpoint as it is controlled at the first client device. In certain aspects, the future viewpoint is directly controlled by the first user of the first client device. 
     At step  1810 , the current viewpoint follows the future viewpoint that is controlled by the first user of the first client device. As such, the second user of the second client device can passively spectate the future viewpoint as it is controlled by the first user of the first client device. In other aspects, the second user of the second client device can actively control an avatar within view of the current viewpoint. 
       FIG. 19  is a diagram of a pursuit path camera model navigation system workflow  1900 , according to certain exemplary aspects.  FIG. 19  describes a high-level architectural block diagram of the pursuit path camera model navigation system. The pursuit path camera model navigation system can accommodate third-person camera models as well as modified first-person camera models. The pursuit path camera model navigation system  100  can be used for games and simulations in both entertainment and serious visualization applications. In certain aspects of the present disclosure, the server  106  of the pursuit path camera model navigation system  100  can include circuitry that is configured to process and transmit game surfaces, content and the like of a 3D game database  1902  to client devices  108 . 
     The circuitry can be configured to deliver the game surfaces and the content of the 3D game database  1902  via a visibility event data stream employing visibility event packets  1906  that are encoded using first-order visibility propagation via a visibility event packet encoder  1904 . The circuitry of the server  106  can further be configured to run a visibility event server software  1908  in which the visibility event packets  1906  are processed in a game engine  1910  of the server  106 . The processed visibility event packets  1906  of the server  106  can be transmitted to a client device  108  in which a visibility event client software  1912  renders the processed visibility event packets  1906  in a game engine  1914  of the client device  108 . In certain aspects of the present disclosure, the transfer of visibility event data can include the transmission of viewpoint location and speed from the client device  108  to the server  106 . 
     In certain aspects, the pursuit path camera model can be utilized in a tactical game or simulation, in which the team leader or other team member of the game or simulation indicates navigational intent to the system by controlling the future viewpoint. Alternatively, or in addition, the intended navigational path may be expressed and/or displayed on a 2D map of the area. In some aspects of the pursuit path camera model in a game or simulation, human or robotic agents, vehicles, or aircraft are dispatched to provide cover along the intended route expressed by the pursuit path. In other aspects of a game or simulation using the pursuit path camera model, the dispatched units scout positions from which the simulated human avatar or simulated vehicle, located at the viewpoint, will become vulnerable to enemy detection and/or attack along the intended navigational path. For example, a human avatar or simulated vehicle may become vulnerable to a ranged kinetic attack. In some aspects, the first person viewpoint of a game or simulation using the pursuit path camera model may be slowed to prevent the human avatar or simulated vehicle from entering a portion of the intended navigational path that has not yet been covered by the dispatched human or robotic units. Alternatively, the velocity of the pursuit path future viewpoint can be slowed. 
     The pursuit path camera model enables a location of a current viewpoint to be modified in an environment. The pursuit path camera model includes a future viewpoint that is set at a predetermined quantity of time ahead of the current viewpoint. The location of the future viewpoint can be modified via commands received by the circuitry of the server  106 . In certain aspects, a current viewpoint is configured to follow the future viewpoint. As such, the current viewpoint can be configured to change location as a result of a change in location of the future viewpoint. The pursuit path camera model can significantly increase the predictability of navigation through the pre-signaling of navigational intent to the server  106  via the future viewpoint control. 
       FIG. 20  is a hardware block diagram of a server, according to certain exemplary aspects. In  FIG. 20 , the server  106  includes a CPU  2000 , which performs the processes described above/below. The process data and instructions may be stored in memory  2002 . These processes and instructions may also be stored on a storage medium disk  2004  such as a hard drive (HDD) or portable storage medium or may be stored remotely. Further, the claimed advancements are not limited by the form of the computer-readable media on which the instructions of the inventive process are stored. For example, the instructions may be stored on CDs, DVDs, in FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk, or any other information processing device with which the server  106  communicates, such as a server or computer. 
     Further, the claimed advancements may be provided as a utility application, background daemon, or component of an operating system, or combination thereof, executing in conjunction with CPU  2000  and an operating system such as MICROSOFT WINDOWS, UNIX, SOLARIS, LINUX, APPLE MAC-OS, and other systems known to those skilled in the art. 
     The hardware elements in order to achieve the server  106  may be realized by various circuitry elements, known to those skilled in the art. For example, CPU  2000  may be a XENON or CORE processor from Intel of America or an OPTERON processor from AMD of America, or may be other processor types that would be recognized by one of ordinary skill in the art. Alternatively, the CPU  2000  may be implemented on an FPGA, ASIC, PLD or using discrete logic circuits, as one of ordinary skill in the art would recognize. Further, CPU  2000  may be implemented as multiple processors cooperatively working in parallel to perform the instructions of the inventive processes described above. 
     The server  106  in  FIG. 20  also includes a network controller  2006 , such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing with a network  102 . As can be appreciated, the network  102  can be a public network, such as the Internet, or a private network such as an LAN or WAN network, or any combination thereof and can also include PSTN or ISDN sub-networks. The network  102  can also be wired, such as an Ethernet network, or can be wireless such as a cellular network including EDGE, 3G and 4G wireless cellular systems. The wireless network can also be Wi-Fi, Bluetooth, or any other wireless form of communication that is known. 
     The server  106  further includes a display controller  2008 , such as a NVIDIA GeForce GTX or Quadro graphics adaptor from NVIDIA Corporation of America for interfacing with display  2010 , such as a Hewlett Packard HPL2445w LCD monitor. A general purpose I/O interface  2012  interfaces with a keyboard and/or mouse  2014  as well as a touch screen panel  2016  on or separate from display  2010 . General purpose I/O interface also connects to a variety of peripherals  2018  including printers and scanners, such as an OfficeJet or DeskJet from Hewlett Packard. 
     A sound controller  2020  is also provided in the server  106 , such as Sound Blaster X-Fi Titanium from Creative, to interface with speakers/microphone  2022  thereby providing sounds and/or music. 
     The general purpose storage controller  2024  connects the storage medium disk  2004  with communication bus  2026 , which may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server  106 . A description of the general features and functionality of the display  2010 , keyboard and/or mouse  2014 , as well as the display controller  2008 , storage controller  2024 , network controller  2006 , sound controller  2020 , and general purpose I/O interface  2012  is omitted herein for brevity as these features are known. 
     The exemplary circuit elements described in the context of the present disclosure may be replaced with other elements and structured differently than the examples provided herein. Moreover, circuitry configured to perform features described herein may be implemented in multiple circuit units (e.g., chips), or the features may be combined in circuitry on a single chipset, as shown in  FIG. 21 . 
       FIG. 21  is a hardware block diagram of a data processing system  2100 , according to certain exemplary aspects.  FIG. 21  shows a schematic diagram of a data processing system  2100 , for performing pursuit path camera model navigation. The data processing system  2100  is an example of a computer in which code or instructions implementing the processes of the illustrative aspects may be located. 
     In  FIG. 21 , data processing system  2100  employs a hub architecture including a north bridge and memory controller hub (NB/MCH)  2125  and a south bridge and input/output (I/O) controller hub (SB/ICH)  2120 . The central processing unit (CPU)  2130  is connected to NB/MCH  2125 . The NB/MCH  2125  also connects to the memory  2145  via a memory bus, and connects to the graphics processor  2150  via an accelerated graphics port (AGP). The NB/MCH  2125  also connects to the SB/ICH  2120  via an internal bus (e.g., a unified media interface or a direct media interface). The CPU Processing unit  2130  may contain one or more processors and even may be implemented using one or more heterogeneous processor systems. 
       FIG. 22  is a hardware block diagram of a CPU, according to certain exemplary aspects.  FIG. 22  shows one implementation of CPU  2130 . In one implementation, the instruction register  2238  retrieves instructions from the fast memory  2240 . At least part of these instructions are fetched from the instruction register  2238  by the control logic  2236  and interpreted according to the instruction set architecture of the CPU  2130 . Part of the instructions can also be directed to the register  2232 . In one implementation the instructions are decoded according to a hardwired method, and in another implementation the instructions are decoded according a microprogram that translates instructions into sets of CPU configuration signals that are applied sequentially over multiple clock pulses. After fetching and decoding the instructions, the instructions are executed using the arithmetic logic unit (ALU)  2234  that loads values from the register  2232  and performs logical and mathematical operations on the loaded values according to the instructions. The results from these operations can be feedback into the register and/or stored in the fast memory  2240 . According to certain implementations, the instruction set architecture of the CPU  2130  can use a reduced instruction set architecture, a complex instruction set architecture, a vector processor architecture, a very large instruction word architecture. Furthermore, the CPU  2130  can be based on the Von Neuman model or the Harvard model. The CPU  2130  can be a digital signal processor, an FPGA, an ASIC, a PLA, a PLD, or a CPLD. Further, the CPU  2130  can be an x86 processor by Intel or by AMD; an ARM processor, a Power architecture processor by, e.g., IBM; a SPARC architecture processor by Sun Microsystems or by Oracle; or other known CPU architecture. 
     Referring again to  FIG. 21 , the data processing system  2100  can include that the SB/ICH  2120  is coupled through a system bus to an I/O Bus, a read only memory (ROM)  2156 , universal serial bus (USB) port  2164 , a flash binary input/output system (BIOS)  2168 , and a graphics controller  2158 . PCI/PCIe devices can also be coupled to SB/ICH  2120  through a PCI bus  2162 . 
     The PCI devices may include, for example, Ethernet adapters, add-in cards, and PC cards for notebook computers. The Hard disk drive  2160  and CD-ROM  2166  can use, for example, an integrated drive electronics (IDE) or serial advanced technology attachment (SATA) interface. In one implementation the I/O bus can include a super I/O (SIO) device. 
     Further, the hard disk drive (HDD)  2160  and optical drive  2166  can also be coupled to the SB/ICH  2120  through a system bus. In one implementation, a keyboard  2170 , a mouse  2172 , a parallel port  2178 , and a serial port  2176  can be connected to the system bust through the I/O bus. Other peripherals and devices that can be connected to the SB/ICH  2120  using a mass storage controller such as SATA or PATA, an Ethernet port, an ISA bus, a LPC bridge, SMBus, a DMA controller, and an Audio Codec. 
     The functions and features described herein may also be executed by various distributed components of a system. For example, one or more processors may execute these system functions, wherein the processors are distributed across multiple components communicating in a network. The distributed components may include one or more client and server machines, which may share processing, in addition to various human interface and communication devices (e.g., display monitors, smart phones, tablets, personal digital assistants (PDAs)). The network may be a private network, such as a LAN or WAN, or may be a public network, such as the Internet. Input to the system may be received via direct user input and received remotely either in real-time or as a batch process. Additionally, some implementations may be performed on modules or hardware not identical to those described. Accordingly, other implementations are within the scope that may be claimed. 
     The above-described hardware description is a non-limiting example of corresponding structure for performing the functionality described herein. 
     A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of this disclosure. For example, preferable results may be achieved if the steps of the disclosed techniques were performed in a different sequence, if components in the disclosed systems were combined in a different manner, or if the components were replaced or supplemented by other components. The functions, processes and algorithms described herein may be performed in hardware or software executed by hardware, including computer processors and/or programmable circuits executing program code and/or computer instructions to execute the functions, processes and algorithms described herein. Additionally, an implementation may be performed on modules or hardware not identical to those described. Accordingly, other implementations are within the scope that may be claimed. 
     The above disclosure also encompasses the aspects listed below. 
     (1) A method of pursuit path camera model navigation, including: providing, via processing circuitry of at least one server, at least one future viewpoint located at a first location and at least one current viewpoint located at a second location; calculating, via the circuitry, a first prefetch region including one or more viewcells and one or more visibility event packets corresponding to the one or more viewcells, the first prefetch region corresponding to the first location of the at least one future viewpoint and the second location of the at least one current viewpoint; receiving, via the circuitry, one or more commands to modify the first location of the at least one future viewpoint to a third location at a first velocity; calculating, via the circuitry, navigational intent of the at least one future viewpoint based on the one or more commands; and calculating, via the circuitry, a second prefetch region including the one or more viewcells and the one or more visibility event packets by collapsing the calculated first prefetch region into the second prefetch region, the second prefetch region corresponding to a predicted pursuit path based on the calculated navigational intent. 
     (2) The method of (1), wherein the second location of the at least one current viewpoint follows the first location of the at least one future viewpoint at a second velocity. 
     (3) The method of either (1) or (2), wherein the one or more commands provide local control of the at least one future viewpoint. 
     (4) The method of any one of (1) to (3), wherein the first prefetch region includes at least one of an area and a volume based on the first location of the at least one future viewpoint and the second location of the at least one current viewpoint. 
     (5) The method of any one of (1) to (4), wherein the one or more commands are detected via an input device in communication with the at least one server, the input device including at least one of a joystick, an eye tracker and a gesture recognition device. 
     (6) The method of any one of (1) to (5), wherein the one or more commands include at least one of turning, braking, coasting and acceleration. 
     (7) The method of any one of (1) to (6), wherein the braking includes an immediate deceleration of the at least one future to reduce the first velocity. 
     (8) The method of any one of (1) to (7), wherein the coasting includes maintaining the second velocity moving the at least one current viewpoint towards the third location of the at least one future viewpoint. 
     (9) The method of any one of (1) to (8), wherein the acceleration includes an acceleration of the at least one future viewpoint to increase the first velocity. 
     (10) A non-transitory computer-readable storage medium, having stored thereon, instruction that when executed by a computing device, cause the computing device to perform a method of pursuit path camera model navigation including: providing, via processing circuitry of at least one server, at least one future viewpoint located at a first location and at least one current viewpoint located at a second location; calculating, via the circuitry, a first prefetch region including one or more viewcells and one or more visibility event packets corresponding to the one or more viewcells, the first prefetch region corresponding to the first location of the at least one future viewpoint and the second location of the at least one current viewpoint; receiving, via the circuitry, one or more commands to modify the first location of the future viewpoint to a third location at a first velocity; calculating, via the circuitry, a navigational intent of the at least one future viewpoint based on the one or more commands; and calculating, via the circuitry, a second prefetch region including the one or more viewcells and the one or more visibility event packets by collapsing the calculated first prefetch region into the second prefetch region, the second prefetch region corresponding to a predicted pursuit path based on the navigational intent. 
     (11) The non-transitory computer-readable storage medium of (10), wherein the second location of the at least one current viewpoint follows the first location of the at least one future viewpoint at a second velocity. 
     (12) The non-transitory computer-readable storage medium of either (10) or (11), wherein the one or more commands provide local control of the at least one future viewpoint. 
     (13) The non-transitory computer-readable storage medium of any one of (10) to (12), wherein the first prefetch region includes at least one of an area and a volume based on the first location of the at least one future viewpoint and the second location of the at least one current viewpoint. 
     (14) The non-transitory computer-readable storage medium of any one of (10) to (13), wherein the one or more commands are detected via an input device in communication with the at least one server, the input device including at least one of a joystick, an eye tracker and a gesture recognition device. 
     (15) The non-transitory computer-readable storage medium of any one of (10) to (14), wherein the one or more commands include at least one of turning, braking, coasting and acceleration. 
     (16) The non-transitory computer-readable storage medium of any one of (10) to (15), wherein the braking includes an immediate deceleration of the at least one future viewpoint to reduce the first velocity. 
     (17) The non-transitory computer-readable storage medium of any one of (10) to (16), wherein the coasting includes maintain the second velocity moving the at least one current viewpoint towards the third location of the at least one future viewpoint. 
     (18) The non-transitory computer-readable storage medium of any one of (10) to (17), wherein the acceleration includes an immediate acceleration of the at least one future viewpoint to increase the first velocity. 
     (19) A pursuit path camera model navigation system, including: an input device in communication with at least one server and including at least one of a joystick, an eye tracker and a gesture recognition device; the at least one server including processing circuitry configured to: provide at least one future viewpoint located at a first location and at least one current viewpoint located at a second location, calculate a first prefetch region including one or more viewcells and one or more visibility event packets corresponding to the one or more viewcells, the first prefetch region corresponding to the first location of the at least one future viewpoint and the second location of the at least one current viewpoint, receive one or more commands to modify the first location of the at least one future viewpoint to a third location at a first velocity via the input device, calculate a navigational intent of the at least one future viewpoint based on the one or more commands, and calculate a second prefetch region including the one or more viewcells and the one or more visibility event packets by collapsing the calculated first prefetch region into the second prefetch region, the second prefetch region corresponding to a predicted pursuit path based on the calculated navigational intent; and at least one client device in communication with the at least one server and at least one graphical display. 
     (20) The system of (19), wherein the first prefetch region includes at least one of an area and a volume based on the first location of the at least one future viewpoint and the second location of the at least one current viewpoint. 
     (21) A method, conducted on a client device, of receiving at least one future visibility event packet from a server, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, including: calculating, via circuitry of the client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint; transmitting, via the circuitry of the client device, information representing the position of the future viewpoint from the client device to the server; receiving, via circuitry of the server, the at least one future visibility event packet; and transforming, via the circuitry of the server, the current viewpoint to follow, after a predetermined delay period, a path of the future viewpoint. 
     (22) The method of (21), further comprising decreasing the delay period when a translational velocity of the future viewpoint falls below a predetermined threshold. 
     (23) The method of either (21) or (22), further comprising increasing the delay period when the at least one future visibility event packet is predicted to arrive after the renderable graphics information should become unoccluded. 
     (24) The method of any one of (21) to (23), further comprising displaying an indication of a threat at the client device when the at least one future visibility event packet is predicted to arrive after the renderable graphics information should become unoccluded. 
     (25) The method of any one of (21) to (24), wherein the indication includes an indication of a threat along a portion of a space curve between the future viewpoint and the current viewpoint. 
     (26) The method of any one of (21) to (25), further comprising: displaying a warning of a threat at the client device when the at least one future visibility event packet is predicted to arrive after the renderable graphics should become unoccluded, and calculating a simulated attack including at least one of slowing and stopping of the future viewpoint when the user does not directly slow the future viewpoint in response to the warning. 
     (27) A method, conducted on a server, of prefetching at least one future visibility event packet to a client device, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, including: transmitting, via circuitry of the client device, the renderable graphics information representing the position of the future viewpoint from the client device to the server; and transmitting, via circuitry of the server, the at least one future visibility event packet from the server to the client device. 
     (28) A method, conducted on a first client device, of receiving at least one future visibility event packet from a server, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, including: calculating, via circuitry of a first client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint; transmitting, via the circuitry of the first client device, information representing the position of the future viewpoint from the first client device to the server; transmitting, via circuitry of the server, at least one visibility event packet comprising renderable graphics information from the server to a second client device; and transforming, via the circuitry of the first client device and circuitry of the second client device, the current viewpoint position to follow a path of the future viewpoint after a predetermined delay period. 
     (29) A method, conducted on a client device, of receiving at least one future visibility event packet from a server, the at least one future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by a future viewpoint, including: calculating, via circuitry of the client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint; displaying, via the circuitry of the client device, a representation of the future viewpoint at the client device; transmitting, via the circuitry of the client device, information representing the position of the future viewpoint from the client device to the server; transforming, via circuitry of the server, the current viewpoint position to follow a path of the future viewpoint after a specified delay period; halting, via the circuitry of the client device, the current viewpoint to a fixed position when a user inputs a braking command at the client device; and transforming, via the circuitry of the client device, the future viewpoint to the fixed position of the current viewpoint in response to the braking command. 
     (30) A method, conducted on a client device, of receiving at least one partial future visibility event packet from a server, the at least one partial future visibility event packet including a subset of a complete future visibility event packet, the complete future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by the future viewpoint, including: calculating, via circuitry of the client device, the future viewpoint from a viewpoint and view direction determined by a current viewpoint; transmitting, via the circuitry of the client device, information representing an orientation of the future viewpoint from the client device to the server; and transmitting, via circuitry of the server, the at least one partial future visibility event packet that intersects a maximal view frustum from the server to the client device, wherein the maximal view frustum includes a volume of space intersected by the maximal view frustum of the future viewpoint during movement of the future viewpoint in the second viewcell. 
     (31) A method, conducted on a server, of prefetching at least one partial future visibility event packet to a client device, the at least one partial future visibility event packet including a subset of a complete future visibility event packet, the complete future visibility event packet including renderable graphics information occluded from a first viewcell visited by a future viewpoint and not occluded from a second viewcell visited by a future viewpoint, including: transmitting, via circuitry of the client device, information representing the orientation of the future viewpoint from the client device to the server; and transmitting, via circuitry of the server, the at least one partial future visibility event packet that intersects a maximal view frustum from the server to the client device, wherein the maximal view frustum includes a volume of space intersected by the maximal view frustum of the future viewpoint during movement of the future viewpoint in the second viewcell.