The present invention relates generally to terrain displays, and specifically to computerized displaying of real-life three-dimensional images of terrain.
Pilots frequently wish to plan their flight route ahead of time and familiarize themselves with the points they plan to pass and approach. Maps and flight charts are used to plan routes before actually flying. However, not all pilots can easily appreciate all the features and difficulties of a route from a map. Furthermore, some information may not appear on the map in sufficient detail. For this reason, Jeppesen Sanderson Inc., of Englewood, Colorado, provides pilots with actual photographs of runway environments together with graphical presentations of terrain and other obstacles, as well as other pertinent local traffic information.
Flight simulators allow pilots to practice flying without leaving the ground. The simulator shows the view seen by the pilot at every point of the flight. However, most existing simulators do not show real images, but rather animated views, and they cannot provide full acquaintance with real-life terrain.
In addition, there exist Internet sites which display still images and/or video streams of different locations, for those who wish to see the location before visiting there. Although streaming of video images over the Internet is known in the art, Internet video streams are limited in the information they provide and would not allow the pilot to interactively probe the terrain over which he is going to fly.
Computer rendering of three-dimensional terrain images is known in the art. U.S. Pat. No. 4,940,972, which is incorporated herein by reference, suggests displaying to a pilot of an aircraft a synthetic image of the ground terrain over which the pilot is flying. U.S. Pat. No. 5,566,073 which is incorporated herein by reference, describes a method for allowing a pilot to preview a route either in flight or on the ground. The ""073 patent also suggests allowing the pilot to take over and try out different flight strategies. However, the data volume required to display flight routes in accordance with the above-mentioned patents is very large. The ""073 patent suggests representing the terrain as polygons in order to save computer storage space, but even so, the amount of storage on most home computers allows only a limited area and/or resolution level to be displayed. The ""073 patent suggests using a CD-ROM to store the required data. However, the delivery of the CD-ROM to home users requires time and prevents pilots from preparing for last minute flight scheduling. Furthermore, changes in the terrain, such as seasonal changes, require frequent updates of the data on the CD-ROM.
It is an object of some aspects of the present invention to provide methods and apparatus for displaying on a remote computer actual images of an area as seen from a viewpoint which is chosen interactively.
It is another object of some aspects of the present invention to provide methods and apparatus for training a pilot to fly a preplanned flight course while allowing the pilot to see the view seen at any point along the flight course at substantially any desired angle.
It is still another object of some aspects of the present invention to provide methods and apparatus for displaying on a client computer images of ground terrain stored in a remote server, which are conveyed to the client via a network, preferably the Internet.
It is still another object of some aspects of the present invention to provide methods and apparatus for streaming data required for rendering three-dimensional terrain images on a remote computer.
In preferred embodiments of the present invention, a processor simulates flight of a virtual airplane along a selected route. At substantially any viewpoint along the route, the processor displays the view seen from the viewpoint in three-dimensional real-life images. A user may select at substantially each point along the route the direction of view and may change the direction dynamically.
Preferably, the user controls the speed of progress along the route and may stop the progress and/or reverse direction along the course.
Preferably, the user views the three-dimensional images without having to store a large database of terrain images on the user""s processor, and without requiring that the processor have an unusually large memory capacity. Rather, the user connects to a pilot training server, which stores all the required data, and the user""s processor downloads the data dynamically according to the data required to display each specific scene. Preferably, the processor connects to the server via a communication link, preferably a public network, such as the Internet. Preferably, the data is conveyed by a standard modem at sufficient speed for relatively smooth display of the images.
Alternatively or additionally, the required data is downloaded prior to the displaying of the scene, or the data is retrieved from a CD or other memory apparatus associated with the processor.
In some preferred embodiments of the present invention, the user may change the parameters of the movement of the virtual airplane, including the speed, height and angle of the airplane, and even deviate from the preplanned route.
In some preferred embodiments of the present invention, the route includes access to an airport according to the access rules of the airport. Alternatively or additionally, the route may include military maneuvers for bombing or access to enemy locations. Further alternatively or additionally, the route may be selected from routes of access to canyons, mountain areas or any other hard-to-access points, for example, in order to train rescue helicopter pilots.
In some preferred embodiments of the present invention, an operator of the server and/or the user may add to the data which describes the terrain annotations which describe specific points in the scene, such as runways or other destinations. Alternatively or additionally, the operator may add three-dimensional objects, such as planned buildings, vehicles, etc. In a preferred embodiment of the present invention, a group of vehicles are tracked according to their position, and they are constantly superimposed on the landscape images.
U.S. patent application Ser. No. 08/939,948, which is assigned to the assignee of the present application and is incorporated herein by reference, describes a method of rendering three-dimensional terrain images. The method allows fast rendering of images by comparison with other methods known in the art. The method of U.S. patent application Ser. No. 08/939,948 uses a hierarchical database in which substantially each terrain area is described in a plurality of blocks at different resolution levels. The blocks at lower resolution levels include less detail per unit area, while the blocks of higher resolution levels include more detail per unit area. The additional storage space required in order to store the additional data required due to the hierarchical structure is xe2x80x9cpaid backxe2x80x9d in improved time performance of the rendering.
In some preferred embodiments of the present invention, the data is stored at the remote server in accordance with the hierarchical structure described in the ""948 application. When data describing a specific area is needed in order to render the current view, the processor first downloads a block with a low level of resolution, which requires less data volume per area unit, and renders the view using the lower resolution block. Afterwards, if available bandwidth on the communication line permits, blocks which cover the specific area from higher resolution levels are downloaded, and the processor uses these blocks to improve the rendered view.
In some preferred embodiments of the present invention, the processor manages a local cache memory in which the processor stores blocks which cover terrain areas in the vicinity of the current viewpoint. Preferably, the processor stores in the cache memory all blocks downloaded from the server. Preferably, when the communication link is not needed to download blocks required for currently rendered images, the processor downloads blocks in the vicinity of the viewpoint. Preferably, the processor stores in the cache memory an equal number of blocks from each resolution level. Further preferably, the number of blocks in the cache memory is such that the cache memory has all the required blocks to render the view from the current viewpoint in any view direction. Preferably, when downloading blocks, the processor first downloads blocks from lower resolution levels.
Preferably, when the processor requires a number of blocks, the first block sent is the block of the lowest level. If two blocks of the same level are required, the one which is requested last is sent first. Thus, when the viewpoint changes, the blocks sent first are for the new viewpoint, and only afterwards are blocks sent for the old viewpoint. Preferably, if a block requested earlier is relatively far from the viewpoint, it is not sent, since it is obviously not needed anymore.
Preferably, when the processor needs to render a new image, the processor first uses the data blocks stored in the cache memory and concurrently sends download orders for higher resolution level blocks.
In some preferred embodiments of the present invention, the processor runs a rendering program which displays the three dimensional images based on the viewpoint, the size of the displayed image and the blocks received from the server. The rendering program orders the blocks it needs using a cache manager, which is preferably a software routine running on the processor. If the cache manager has the ordered block, it provides it to the rendering program. However, if the block is not carried by the cache manager, it is ordered from the server, and a replacement block from a lower resolution level is passed to the rendering program.
When the rendering program requires a block including a new point or area for display, the cache manager first requests the block of the lowest resolution level which covers the area with the least detail and then requests subsequent blocks with successively increasing detail, until the block with the level of detail required by the rendering program is sent. The rendering program renders the three-dimensional image using the blocks it has on hand. Each time another block is received, the image is rendered again. Thus, the user sees an image at substantially all times and is not prevented from moving the viewpoint while additional data is being sent from the server.
There is therefore provided in accordance with a preferred embodiment of the present invention, a method of providing data blocks describing three-dimensional terrain to a renderer, the data blocks belonging to a hierarchical structure which includes blocks at a plurality of different resolution levels, the method including receiving from the renderer one or more coordinates in the terrain along with indication of a respective resolution level, providing the renderer with a first data block which includes data corresponding to the one or more coordinates, from a local memory, and downloading from a remote server one or more additional data blocks which include data corresponding to the one or more coordinates if the provided block from the local memory is not at the indicated resolution level.
Preferably, providing the first data block includes providing the data block from the highest resolution level which includes data corresponding to the one or more coordinates.
Preferably, downloading the one or more additional data blocks includes downloading a block at a resolution level higher than the resolution level of the first block.
Further preferably, downloading the one or more additional data blocks includes downloading the blocks from a succession of resolution levels, from the level immediately higher than the resolution level of the first block up to the maximal existent resolution level on the server not above the indicated resolution level.
Preferably, receiving from the renderer the one or more coordinates includes receiving a plurality of coordinates included in a plurality of respective distinct blocks, and downloading the one or more blocks includes downloading blocks including data corresponding to at least some of the plurality of coordinates.
Preferably, downloading the blocks includes downloading the blocks in an order determined according to their resolution levels.
Further preferably, downloading the blocks includes downloading blocks of lower resolution levels before blocks of higher resolution levels.
Preferably, downloading the blocks includes downloading first the block for which the coordinates were provided last among blocks at a common resolution level.
Preferably, downloading the blocks includes downloading the blocks according to the order in which the coordinates were provided.
Preferably, downloading the blocks includes downloading first the block for which the coordinates were provided last.
Preferably, the method includes downloading excess blocks not currently needed by the renderer to fill up the local memory when not downloading blocks required by the renderer.
Preferably, the renderer renders a view from a current viewpoint, and downloading the excess blocks includes filling the local memory with substantially all of the blocks surrounding a point in the terrain seen from the current viewpoint within a predetermined distance range.
Preferably, downloading excess blocks includes filling the local memory with substantially the same number of blocks from each different resolution level.
Preferably, filling the local memory includes filling the memory with substantially all the blocks within the range from a lower resolution level before downloading blocks of higher resolution levels.
Preferably, downloading the data blocks includes downloading the blocks via the Internet.
There is further provided in accordance with a preferred embodiment of the present invention, a method of displaying three dimensional images, including establishing a communication link between a local processor and a server, transferring data blocks describing terrain over the communication link from the server to the local processor; and rendering a three-dimensional terrain image at the local processor responsive to the data blocks.
Preferably, establishing the communication link includes establishing a low-speed communication link.
Preferably, transferring the data blocks includes transferring the blocks via the Internet.
Further preferably, transferring the data blocks includes transferring the blocks responsive to a list of coordinates generated by the processor.
Preferably, the list of coordinates is prepared responsive to a viewpoint from which the image is rendered.
Preferably, the viewpoint changes over time following a predetermined course.
Preferably, the predetermined course is received from the server.
Preferably, the predetermined course describes a suggested course for landing in an airport.
Preferably, a user of the processor changes the view direction from the viewpoint without removing the viewpoint from the predetermined course.
Preferably, the viewpoint is controlled by a user of the processor.
Preferably, transferring the data blocks includes transferring blocks which include altitude data of the terrain.
Preferably, transferring the data blocks includes transferring blocks which include optional objects to be overlaid on the terrain.
Preferably, rendering the images includes rendering the images with at least some of the optional objects according to settings of the user of the local processor.
There is further provided in accordance with a preferred embodiment of the present invention, a method of pilot training, including loading a course of a flight vehicle into a local processor, establishing a communication link between the processor and a server, transferring data blocks describing terrain viewed from the course over the communication link from the server to the local processor, and rendering a three-dimensional terrain image at the local processor responsive to the data blocks.
Preferably, the course describes a suggested course for landing in an airport.
There is further provided in accordance with a preferred embodiment of the present invention, apparatus for providing data blocks describing three-dimensional terrain to a renderer, the data blocks belonging to a hierarchical structure which includes blocks at a plurality of different resolution levels, the apparatus including a local memory, which stores data blocks corresponding to coordinates proximal to a current viewpoint of the renderer, a communication link, through which the memory receives the data blocks from a remote server, and a processor which receives one or more specified coordinates along with indication of a respective resolution level from the renderer, provides the renderer with a first data block which includes data corresponding to the one or more specified coordinates from the local memory, and downloads over the communication link one or more additional data blocks which include data corresponding to the one or more coordinates if the first block is not from the indicated level.
Preferably, the processor provides the first data block from the highest resolution level which includes the one or more coordinates currently available in the local memory.
Preferably, the processor downloads a block of a resolution level higher than the resolution level of the first block.
Preferably, the processor downloads blocks from the resolution level immediately higher than the resolution level of the first block up to a maximal resolution level of blocks stored on the server that is not above the indicated resolution level.
Preferably, the processor receives from the renderer a plurality of coordinates included in a plurality of respective distinct blocks and downloads blocks including at least some of the plurality of coordinates.
Preferably, the processor downloads the blocks in an order determined according to their resolution levels.
Preferably, the processor downloads blocks of lower resolution levels before blocks of higher resolution levels.
Preferably, the processor downloads in first precedence the block for which the coordinates were provided last among blocks from a common resolution level.
Preferably, the processor downloads the blocks according to the order in which the coordinates were provided.
Preferably, the processor downloads in first precedence the block for which the coordinates were provided last.
Preferably, the processor downloads excess blocks not currently needed by the renderer to fill up the local memory when not downloading blocks required by the renderer.
Preferably, the renderer renders a view from a current viewpoint and the processor fills the local memory with substantially all the blocks surrounding a point in the terrain seen from the current viewpoint in a predetermined range.
Preferably, the processor fills the local memory with substantially the same number of blocks from each resolution level.
Preferably, the processor fills the local memory with substantially all the blocks from a lower level before downloading blocks of higher resolution levels.
Preferably, the communication link includes a connection to the Internet.
There is further provided in accordance with a preferred embodiment of the present invention, an apparatus for displaying three dimensional images, including a processor, a communication link between the processor and a server over which data blocks describing terrain are transferred, and a display on which the processor renders three-dimensional terrain images responsive to the data blocks.
Preferably, the communication link includes a low-speed communication link.
Preferably, the data blocks are transferred responsive to a list of coordinates from the processor.
Preferably, the list of coordinates is prepared responsive to a viewpoint from which the image is perceived.
Preferably, the viewpoint follows a predetermined course.
Preferably, the predetermined course is received from the server.
Preferably, the predetermined course describes a suggested course for landing in an airport.
Preferably, a user of the processor may change the view direction from the viewpoint without moving the viewpoint from the predetermined course.
Preferably, the viewpoint is controlled by a user of the processor.
Preferably, the communication link includes a connection to the Internet.
There is further provided in accordance with a preferred embodiment of the present invention, pilot training apparatus, including a processor which tracks a predetermined course of a flight vehicle, a communication link between the processor and a server over which data blocks describing terrain are transferred responsive to the course, and a display on which the processor renders three-dimensional terrain images viewed from the course responsive to the data blocks.
The present invention will be more fully understood from the following detailed description of the preferred embodiments thereof, taken together with the drawings in which: