Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

Provided is an image display device capable of easily displaying an image
depicting the deep side of a point of gaze when an operation to change a
pitch angle of a viewpoint is performed by a user. The image display
device displays an image rendering a scene viewed from a viewpoint in a
virtual space in a line of sight, and performs at least one of a process
of moving a position of the viewpoint and a process of changing the line
of sight, according to a viewpoint moving operation performed by the
user. The image display device also calculates a position of a pitch
angle change center point which exists on a straight line extending from
the viewpoint in the line of sight, changes the pitch angle of the
viewpoint about the pitch angle change center point according to the
pitch angle change operation performed by the user, and changes the line
of sight so that the line of sight is directed to the pitch angle change
center point from the position of the viewpoint with the pitch angle thus
changed.

Claims:

1. An image display device for displaying an image rendering a scene
viewed from a viewpoint in a virtual space in a line of sight, the
virtual space having at least one virtual object disposed therein, the
image display device comprising: viewpoint moving means for performing at
least one of a process of moving a position of the viewpoint and a
process of changing the line of sight, according to a viewpoint moving
operation performed by a user; pitch angle change center point position
calculation means for calculating a position of a pitch angle change
center point which exists on a straight line extending from the viewpoint
in the line of sight; and pitch angle change means for changing a pitch
angle of the viewpoint about the pitch angle change center point
according to a pitch angle change operation performed by the user, and
changing the line of sight so that the line of sight is directed to the
pitch angle change center point from the position of the viewpoint with
the pitch angle thus changed.

2. The image display device according to claim 1, wherein the pitch angle
change center point position calculation means calculates, as the
position of the pitch angle change center point, a position of a point
which internally divides a distance between a position indicating a point
of gaze and the position of the viewpoint at a given ratio.

3. The image display device according to claim 1, further comprising
pitch angle change center point moving means for moving the position of
the pitch angle change center point according to a pitch angle change
center point moving operation performed by the user, and changing at
least the line of sight so that the line of sight is directed to the
pitch angle change center point from the position of the viewpoint.

4. The image display device according to claim 1, wherein the virtual
object renders the Earth.

5. A method for controlling an image display device for displaying an
image rendering a scene viewed from a viewpoint in a virtual space in a
line of sight, the virtual space having at least one virtual object
disposed therein, the method for controlling an image display device
comprising: a viewpoint moving step of performing at least one of a
process of moving a position of the viewpoint and a process of changing
the line of sight, according to a viewpoint moving operation performed by
a user; a pitch angle change center point position calculation step of
calculating a position of a pitch angle change center point which exists
on a straight line extending from the viewpoint in the line of sight; and
a pitch angle change step of changing a pitch angle of the viewpoint
about the pitch angle change center point according to a pitch angle
change operation performed by the user, and changing the line of sight so
that the line of sight is directed to the pitch angle change center point
from the position of the viewpoint with the pitch angle thus changed.

6. A non-transitory, computer-readable information storage medium storing
a program for controlling a computer to function as an image display
device for displaying an image rendering a scene viewed from a viewpoint
in a virtual space in a line of sight, the virtual space having at least
one virtual object disposed therein, the computer-readable information
storage medium storing the program for controlling the computer to
function as: viewpoint moving means for performing at least one of a
process of moving a position of the viewpoint and a process of changing
the line of sight, according to a viewpoint moving operation performed by
a user; pitch angle change center point position calculation means for
calculating a position of a pitch angle change center point which exists
on a straight line extending from the viewpoint in the line of sight; and
pitch angle change means for changing a pitch angle of the viewpoint
about the pitch angle change center point according to a pitch angle
change operation performed by the user, and changing the line of sight so
that the line of sight is directed to the pitch angle change center point
from the position of the viewpoint with the pitch angle thus changed.

7. An image display device for displaying an image rendering a scene
depicting a view field region which is defined based on a viewpoint and a
line of sight in a virtual space having a virtual object disposed
therein, the image display device comprising: viewpoint movement speed
determination means for determining a movement speed of the viewpoint,
based on a virtual object-to-viewpoint distance which is a distance based
on a relation between a position indicating the virtual object included
in the view field region and a position indicating the viewpoint,
according to a viewpoint moving operation performed by a user; and
viewpoint moving means for moving the position of the viewpoint at the
movement speed determined by the viewpoint movement speed determination
means.

8. The image display device according to claim 7, wherein the viewpoint
movement speed determination means determines the movement speed so that
the movement speed increases in value as the virtual object-to-viewpoint
distance increases in value.

9. The image display device according to claim 7, further comprising
viewpoint position modification means for measuring, when the viewpoint
moving means moves the viewpoint, a distance between the position
indicating the viewpoint and the position indicating the virtual object,
and modifying, in a case where the distance is smaller than a given
distance, the position of the viewpoint in a direction away from the
virtual object.

10. The image display device according to claim 7, further comprising:
pitch angle change means for changing, from a current position of the
viewpoint, the pitch angle about a pitch angle change center point which
exists on a straight line extending from the viewpoint in the line of
sight, according to a pitch angle change operation performed by the user,
and changing the line of sight so that the line of sight is directed to
the pitch angle change center point from the position of the viewpoint
with the pitch angle thus changed; and pitch angle change center point
position modification means for measuring, when the viewpoint moving
means moves the viewpoint, a distance between a position indicating the
pitch angle change center point and the position indicating the virtual
object, and modifying, in a case where the distance exceeds a given
range, the position of the pitch angle change center point so that the
distance falls within the given range.

11. The image display device according to claim 7, wherein the virtual
object renders the Earth.

12. A method for controlling an image display device for displaying an
image rendering a scene depicting a view field region viewed from a
viewpoint in a virtual space having a virtual object disposed therein,
the method for controlling an image display device comprising the steps
of: determining a movement speed of the viewpoint, based on a virtual
object-to-viewpoint distance which is a distance based on a relation
between a position indicating the virtual object included in the view
field region and a position indicating the viewpoint, according to a
viewpoint moving operation performed by a user; and moving the position
of the viewpoint at the movement speed determined in the viewpoint
movement speed determination step.

13. A non-transitory, computer-readable information storage medium
storing a program for controlling a computer to function as an image
display device for displaying an image rendering a scene depicting a view
field region viewed from a viewpoint in a virtual space having a virtual
object disposed therein, the computer-readable information storage medium
storing the program for controlling the computer to function as:
viewpoint movement speed determination means for determining a movement
speed of the viewpoint, based on a virtual object-to-viewpoint distance,
which is a distance based on a relation between a position indicating the
virtual object included in the view field region and a position
indicating the viewpoint, according to a viewpoint moving operation
performed by a user; and viewpoint moving means for moving the position
of the viewpoint at the movement speed determined by the viewpoint
movement speed determination means.

14. An image display device for displaying an image rendering a scene
depicting a view field region determined based on a viewpoint and a line
of sight in a virtual space having a virtual object disposed therein, the
image display device comprising: allowable range calculation means for
calculating an allowable range for moving a position of the viewpoint
and/or an allowable range for changing the line of sight, based on a size
of a region where the view field region overlaps with a closed region
occupied by the virtual object; and viewpoint moving means for performing
a process of moving the position of the viewpoint and/or a process of
changing the line of sight within the allowable range, according to a
viewpoint moving operation performed by a user.

15. The image display device according to claim 14, wherein the allowable
range calculation means calculates the position of the viewpoint and/or
the line of sight when the line of sight is equivalent to a tangent line
direction with respect to the closed region, as a boundary between an
inside and an outside of the allowable range.

16. The image display device according to claim 14, further comprising
pitch angle change means for changing, from a current position of the
viewpoint, a pitch angle about a pitch angle change center point which
exists on a straight line extending from the viewpoint in the line of
sight, according to a pitch angle change operation performed by the user,
and changing the line of sight so that the line of sight is directed to
the pitch angle change center point from the position of the viewpoint
with the pitch angle thus changed, wherein the allowable range
calculation means calculates the position of the viewpoint and/or the
line of sight when a straight line passing through the pitch angle change
center point and the viewpoint extends in a direction equivalent to a
tangent line direction with respect to the closed region, as a boundary
between an inside and an outside of the allowable range.

18. The image display device according to claim 17, further comprising:
relative pitch angle data storage means for storing relative pitch angle
data representing a ratio of an angle formed by the straight line passing
through the pitch angle change center point and the viewpoint, and, a
straight line passing through the pitch angle change center point and
being perpendicular to a region rendering the virtual object, with
respect to a maximum pitch angle which is a maximum value in the pitch
angle range calculated by the allowable range calculation means; relative
pitch angle data change means for changing the relative pitch angle data
stored in the relative pitch angle data storage means, according to a
relative pitch angle change operation performed by the user; and pitch
angle calculation means for calculating the pitch angle, based on the
ratio with respect to the maximum pitch angle represented by the relative
pitch angle data and the maximum pitch angle, wherein the pitch angle
change means changes the pitch angle, based on the pitch angle calculated
by the pitch angle calculation means and a position of the pitch angle
change center point.

19. The image display device according to claim 14, wherein the virtual
object renders the Earth.

20. A method for controlling an image display device for displaying an
image rendering a scene depicting a view field region which is defined
based on a viewpoint and a line of sight in a virtual space having a
virtual object disposed therein, the method for controlling an image
display device, comprising the steps of: calculating an allowable range
for moving a position of the viewpoint and/or an allowable range for
changing the line of sight, based on a size of a region where the view
field region overlaps with a closed region occupied by the virtual
object; and performing a process of moving the position of the viewpoint
and/or a process of changing the line of sight within the allowable
range, according to a viewpoint moving operation performed by a user.

21. A non-transitory, computer-readable information storage medium
storing a program for controlling a computer to function as an image
display device for displaying an image rendering a scene depicting a view
field region which is defined based on a viewpoint and a line of sight in
a virtual space having a virtual object disposed therein, the
computer-readable information storage medium storing the program for
controlling the computer to function as: allowable range calculation
means for calculating an allowable range for moving a position of the
viewpoint and/or an allowable range for changing the line of sight, based
on a size of a region where the view field region overlaps with a closed
region occupied by the virtual object; and viewpoint moving means for
performing a process of moving the position of the viewpoint and/or a
process of changing the line of sight within the allowable range,
according to a viewpoint moving operation performed by a user.

Description:

TECHNICAL FIELD

[0001] The present invention relates to an image display device, a method
for controlling an image display device, and an information storage
medium.

BACKGROUND ART

[0002] There has been known an image display device for displaying, on a
screen of a monitor or the like, an image rendering a scene of a virtual
space having virtual objects disposed therein, which is viewed from a
viewpoint in the line of sight. Patent Literature 1, for example,
discloses a technology related to an image display device capable of
accurately displaying a three dimensional image of an object with ease.
In the image display device as described above, the virtual objects
disposed in the virtual space specifically include, for example, the
Earth represented by a plurality of polygons provided with textures of
aerial photographs or satellite images, and mountain chains represented
by a plurality of polygons through three-dimensional modeling.

[0003] The image display device as described above allows the user to move
the viewpoint in the virtual space by performing corresponding
operations, so that the user can enjoy a sense of realism as if the user
is looking at the Earth from the sky. [0004] Patent Literature 1: U.S.
Pat. No. 5,912,671 A

DISCLOSURE OF THE INVENTION

Problems to be Solved by the Invention

[0005] However, in the above-mentioned image display device, there has
been a problem as follows. That is, when the line of sight is tilted due
to user's operation to change the pitch angle of the viewpoint, an image
down the line of sight, that is, an image depicting the deep side of the
point of gaze, may become difficult to display on a screen of a monitor.

[0006] Further, in the above-mentioned image display device, when the
viewpoint in the virtual space is moved by user's operation, the
viewpoint may be controlled to be moved at a constant speed irrespective
of the distance between the virtual objects and the viewpoint.

[0007] Under such circumstances, for example, in a case where the virtual
object has surface irregularities as in a case where virtual objects
rendering a mountain chain are disposed in the virtual space, the
distance between the viewpoint and the virtual objects affects the flow
of a view field, that is, the speed of scrolling the image displayed on a
screen of a display apparatus such as a display, when the viewpoint is
moved along the surface of the virtual space by user's operation.
Specifically, for example, the view field flows slowly at a low altitude
while the view field flows fast at a high altitude.

[0008] For this reason, the user may find it difficult to perform an
operation of precisely moving the viewpoint, for example, in a case where
the user desires to move the viewpoint to a place of interest to the
user.

[0009] Further, in the above-mentioned image display device, the image of
the virtual object that should be displayed on the screen may fall out
completely, or for the most part, of the screen, depending on the
position of the viewpoint or the line of sight (see FIG. 18). In this
case, the user cannot determine the position of the viewpoint or the line
of sight with respect to the current virtual object, which makes it
difficult for the user to perform operation to control the position of
the viewpoint and the line of sight so that the image rendering the
virtual object may be brought back to be displayed on the screen again.
In such a case, the display status of the image of the virtual object to
be displayed on the screen may preferably be controlled so that, for
example, the image rendering the virtual object may always be displayed
on the screen.

[0010] The present invention has been made in view of the above-mentioned
problems, and it is an object of the present invention to provide an
image display device capable of easily displaying an image depicting the
deep side of the point of gaze when an operation to change the pitch
angle of the viewpoint is performed by the user, a method for controlling
the image display device, and an information storage medium.

[0011] It is another object of the present invention to provide an image
display device which allows the user to perform an operation of moving
the viewpoint in the virtual space more precisely, a method for
controlling the image display device, and an information storage medium.

[0012] It is a further object of the present invention to provide an image
display device capable of controlling a display status of displaying an
image of the virtual object to be displayed on the screen, a method for
controlling the image display device, and an information storage medium.

Means for Solving the Problems

[0013] In order to solve the above-mentioned problems, the present
invention provides an image display device for displaying an image
rendering a scene viewed from a viewpoint in a virtual space in a line of
sight, the virtual space having at least one virtual object disposed
therein, the image display device including: viewpoint moving means for
performing at least one of a process of moving a position of the
viewpoint and a process of changing the line of sight, according to a
viewpoint moving operation performed by a user; pitch angle change center
point position calculation means for calculating a position of a pitch
angle change center point which exists on a straight line extending from
the viewpoint in the line of sight; and pitch angle change means for
changing a pitch angle of the viewpoint about the pitch angle change
center point according to a pitch angle change operation performed by the
user, and changing the line of sight so that the line of sight is
directed to the pitch angle change center point from the position of the
viewpoint with the pitch angle thus changed.

[0014] The present invention also provides a method for controlling an
image display device for displaying an image rendering a scene viewed
from a viewpoint in a virtual space in a line of sight, the virtual space
having at least one virtual object disposed therein, the method for
controlling an image display device including: a viewpoint moving step of
performing at least one of a process of moving a position of the
viewpoint and a process of changing the line of sight, according to a
viewpoint moving operation performed by a user; a pitch angle change
center point position calculation step of calculating a position of a
pitch angle change center point which exists on a straight line extending
from the viewpoint in the line of sight; and a pitch angle change step of
changing a pitch angle of the viewpoint about the pitch angle change
center point according to a pitch angle change operation performed by the
user, and changing the line of sight so that the line of sight is
directed to the pitch angle change center point from the position of the
viewpoint with the pitch angle thus changed.

[0015] The present invention also provides a computer-readable information
storage medium storing a program for controlling a computer to function
as an image display device for displaying an image rendering a scene
viewed from a viewpoint in a virtual space in a line of sight, the
virtual space having at least one virtual object disposed therein, the
computer-readable information storage medium storing the program for
controlling the computer to function as: viewpoint moving means for
performing at least one of a process of moving a position of the
viewpoint and a process of changing the line of sight, according to a
viewpoint moving operation performed by a user; pitch angle change center
point position calculation means for calculating a position of a pitch
angle change center point which exists on a straight line extending from
the viewpoint in the line of sight; and pitch angle change means for
changing a pitch angle of the viewpoint about the pitch angle change
center point according to a pitch angle change operation performed by the
user, and changing the line of sight so that the line of sight is
directed to the pitch angle change center point from the position of the
viewpoint with the pitch angle thus changed.

[0016] According to the present invention, the pitch angle of the
viewpoint may be changed about the pitch angle change center point, and
hence an image depicting the deep side of the point of gaze may be
displayed with ease when the pitch angle change operation is performed by
the user.

[0017] According to an aspect of the present invention, the pitch angle
change center point position calculation means calculates, as the
position of the pitch angle change center point, a position of a point
which internally divides a distance between a position indicating a point
of gaze and the position of the viewpoint at a given ratio. With this
configuration, the position of the pitch angle change center point may be
calculated with ease.

[0018] Further, according to another aspect of the present invention, the
image display device further includes pitch angle change center point
moving means for moving a position of the pitch angle change center point
according to a pitch angle change center point moving operation performed
by the user, and changing at least the line of sight so that the line of
sight is directed to the pitch angle change center point from the
position of the viewpoint. With this configuration, the user may be
allowed to move the position of the pitch angle change center point in a
state where the line of sight is directed to the pitch angle change
center point.

[0019] Further, according to a further aspect of the present invention,
the virtual object renders the Earth.

[0020] The present invention also provides another image display device
for displaying an image rendering a scene depicting a view field region
which is defined based on a viewpoint and a line of sight in a virtual
space having a virtual object disposed therein, the image display device
including: viewpoint movement speed determination means for determining a
movement speed of the viewpoint, based on a virtual object-to-viewpoint
distance which is a distance based on a relation between a position
indicating the virtual object included in the view field region and a
position indicating the viewpoint, according to a viewpoint moving
operation performed by a user; and viewpoint moving means for moving the
position of the viewpoint at the movement speed determined by the
viewpoint movement speed determination means.

[0021] The present invention also provides another method for controlling
an image display device for displaying an image rendering a scene
depicting a view field region viewed from a viewpoint in a virtual space
having a virtual object disposed therein, the method for controlling an
image display device including: a viewpoint movement speed determination
step of determining a movement speed of the viewpoint, based on a virtual
object-to-viewpoint distance which is a distance based on a relation
between a position indicating the virtual object included in the view
field region and a position indicating the viewpoint, according to a
viewpoint moving operation performed by a user; and a viewpoint moving
step of moving the position of the viewpoint at the movement speed
determined in the viewpoint movement speed determination step.

[0022] The present invention also provides another computer-readable
information storage medium storing a program for controlling a computer
to function as an image display device for displaying an image rendering
a scene depicting a view field region viewed from a viewpoint in a
virtual space having a virtual object disposed therein, the
computer-readable information storage medium storing the program for
controlling the computer to function as: viewpoint movement speed
determination means for determining a movement speed of the viewpoint,
based on a virtual object-to-viewpoint distance which is a distance based
on a relation between a position indicating the virtual object included
in the view field region and a position indicating the viewpoint,
according to a viewpoint moving operation performed by a user; and
viewpoint moving means for moving the position of the viewpoint at the
movement speed determined by the viewpoint movement speed determination
means.

[0023] According to the present invention, the position of the viewpoint
moves at the movement speed according to the virtual object-to-viewpoint
distance, and hence the user may be allowed to perform the operation of
moving the viewpoint in the virtual space more precisely.

[0024] According to an aspect of the present invention, the viewpoint
movement speed determination means determines the movement speed so that
the movement speed increases in value as the virtual object-to-viewpoint
distance increases in value. With this configuration, the view field
flows at a lower speed as the distance between the virtual object and the
viewpoint becomes smaller, and hence the user may be allowed to perform
the operation of moving the viewpoint more precisely.

[0025] Further, according to another aspect of the present invention, the
image display device further includes viewpoint position modification
means for measuring, when the viewpoint moving means moves the viewpoint,
a distance between the position indicating the viewpoint and the position
indicating the virtual object, and modifying, in a case where the
distance is smaller than a given distance, the position of the viewpoint
in a direction away from the virtual object. With this configuration,
when the viewpoint almost comes into contact with the virtual object, the
viewpoint may be moved so as to avert the contact.

[0026] Further, according to a further aspect of the present invention,
the image display device further includes: pitch angle change means for
changing, from a current position of the viewpoint, the pitch angle about
a pitch angle change center point which exists on a straight line
extending from the viewpoint in the line of sight, according to a pitch
angle change operation performed by the user, and changing the line of
sight so that the line of sight is directed to the pitch angle change
center point from the position of the viewpoint with the pitch angle thus
changed; and pitch angle change center point position modification means
for measuring, when the viewpoint moving means moves the viewpoint, a
distance between a position indicating the pitch angle change center
point and the position indicating the virtual object, and modifying, in a
case where the distance exceeds a given range, the position of the pitch
angle change center point so that the distance falls within the given
range. With this configuration, the user may be allowed to perform an
operation of changing the pitch angle of the viewpoint, and hence the
distance between the pitch angle change center point and the virtual
object may be made to fall within the given range.

[0027] Further, according to a still further aspect of the present
invention, the virtual object renders the Earth.

[0028] The present invention also provides a further image display device
for displaying an image rendering a scene depicting a view field region
determined based on a viewpoint and a line of sight in a virtual space
having a virtual object disposed therein, the image display device
including: allowable range calculation means for calculating an allowable
range for moving a position of the viewpoint and/or an allowable range
for changing the line of sight, based on a size of a region where the
view field region overlaps with a closed region occupied by the virtual
object; and viewpoint moving means for performing a process of moving the
position of the viewpoint and/or a process of changing the line of sight
within the allowable range, according to a viewpoint moving operation
performed by a user.

[0029] The present invention also provides a further method for
controlling an image display device for displaying an image rendering a
scene depicting a view field region which is defined based on a viewpoint
and a line of sight in a virtual space having a virtual object disposed
therein, the method for controlling an image display device including: an
allowable range calculation step of calculating an allowable range for
moving a position of the viewpoint and/or an allowable range for changing
the line of sight, based on a size of a region where the view field
region overlaps with a closed region occupied by the virtual object; and
a viewpoint moving step of performing a process of moving the position of
the viewpoint and/or a process of changing the line of sight within the
allowable range, according to a viewpoint moving operation performed by a
user.

[0030] The present invention also provides a further computer-readable
information storage medium storing a program for controlling a computer
to function as an image display device for displaying an image rendering
a scene depicting a view field region which is defined based on a
viewpoint and a line of sight in a virtual space having a virtual object
disposed therein, the computer-readable information storage medium
storing the program for controlling the computer to function as:
allowable range calculation means for calculating an allowable range for
moving a position of the viewpoint and/or an allowable range for changing
the line of sight, based on a size of a region where the view field
region overlaps with a closed region occupied by the virtual object; and
viewpoint moving means for performing a process of moving the position of
the viewpoint and/or a process of changing the line of sight within the
allowable range, according to a viewpoint moving operation performed by a
user.

[0031] According to the present invention, the viewpoint may be moved
within the calculated allowable range or the line of sight may be changed
within the allowable range, depending on how the view field region
overlaps with the closed region occupied by the virtual object, and hence
the display status of the image of the virtual object to be displayed on
a screen may be controlled.

[0032] Further, according to one aspect of the present invention, the
allowable range calculation means calculates the position of the
viewpoint and/or the line of sight when the line of sight is equivalent
to a tangent line direction with respect to the closed region, as a
boundary between an inside and an outside of the allowable range. With
this configuration, the display status of the image of the virtual object
to be displayed on a screen of a monitor may be controlled so that a
contour of the virtual object may be displayed in the center of the
screen.

[0033] Further, according to another aspect of the present invention, the
image display device further includes pitch angle change means for
changing, from a current position of the viewpoint, the pitch angle about
a pitch angle change center point which exists on a straight line
extending from the viewpoint in the line of sight, according to a pitch
angle change operation performed by the user, and changing the line of
sight so that the line of sight is directed to the pitch angle change
center point from the position of the viewpoint with the pitch angle thus
changed, and the allowable range calculation means calculates the
position of the viewpoint and/or the line of sight when a straight line
passing through the pitch angle change center point and the viewpoint
extends in a direction equivalent to a tangent line direction with
respect to the closed region, as a boundary between an inside and an
outside of the allowable range. With this configuration, the user may be
allowed to perform the pitch angle change operation. Further, the
boundary of the outside and the inside of the allowable range may be
calculated based on the straight line passing through the pitch angle
change center point and the viewpoint, and hence the allowable range may
be calculated with more ease.

[0034] Further, according to a further aspect of the present invention,
the allowable range calculation means calculates a pitch angle range, and
the pitch angle change means changes the pitch angle within the pitch
angle range calculated by the allowable range calculation means. With
this configuration, the allowable range may be controlled based on the
pitch angle, and hence the allowable range may be controlled with more
ease.

[0035] Further, in the further aspect, the image display device may
further include: relative pitch angle data storage means for storing
relative pitch angle data representing a ratio of an angle formed by the
straight line passing through the pitch angle change center point and the
viewpoint, and, a straight line passing through the pitch angle change
center point and being perpendicular to a region rendering the virtual
object, with respect to a maximum pitch angle which is a maximum value in
the pitch angle range calculated by the allowable range calculation
means; relative pitch angle data change means for changing the relative
pitch angle data stored in the relative pitch angle data storage means,
according to a relative pitch angle change operation performed by the
user; and pitch angle calculation means for calculating the pitch angle,
based on the ratio with respect to the maximum pitch angle represented by
the relative pitch angle data and the maximum pitch angle, and the pitch
angle change means may change the pitch angle, based on the pitch angle
calculated by the pitch angle calculation means and a position of the
pitch angle change center point. With this configuration, the position of
the viewpoint may be managed based on the relative pitch angle.

[0036] Further, according to a still further aspect of the present
invention, the virtual object renders the Earth.

BRIEF DESCRIPTION OF THE DRAWINGS

[0037]FIG. 1 is a hardware configuration diagram illustrating an example
of a hardware configuration of an entertainment system employed as an
image display device according to an embodiment of the present invention.

[0038]FIG. 2 is a detailed configuration diagram illustrating in detail
an example of a micro processing unit (MPU).

[0039]FIG. 3A is a perspective view illustrating an example of a
controller.

[0040]FIG. 3B is an upper side view illustrating an example of the
controller.

[0041]FIG. 4A is a diagram illustrating an example of a scene viewed from
a viewpoint in a line of sight in a virtual space.

[0042]FIG. 4B is a diagram illustrating an example of another scene
viewed from a viewpoint in a line of sight in the virtual space.

[0043]FIG. 4C is a diagram illustrating an example of a further scene
viewed from a viewpoint in a line of sight in the virtual space.

[0044]FIG. 5A illustrates an example of an image rendering a scene viewed
from a viewpoint in a line of sight in the virtual space.

[0045]FIG. 5B illustrates an example of another image rendering a scene
viewed from a viewpoint in a line of sight in the virtual space.

[0046]FIG. 5C illustrates an example of a further image rendering a scene
viewed from a viewpoint in a line of sight in the virtual space.

[0047]FIG. 5D illustrates an example of a still further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0048]FIG. 5E illustrates an example of a yet further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0049]FIG. 5F illustrates an example of a yet further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0050]FIG. 5G illustrates an example of a yet further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0051] FIG. 5H illustrates an example of a yet further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0052] FIG. 5I illustrates an example of a yet further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0053]FIG. 5J illustrates an example of a yet further image rendering a
scene viewed from a viewpoint in a line of sight in the virtual space.

[0054]FIG. 6 is a functional block diagram illustrating an example of a
function of an entertainment system employed as the image display device
according to the embodiment of the present invention.

[0055]FIG. 7 is an explanatory diagram illustrating an example of a
relation of a virtual Earth object with respect to a position of a
viewpoint and a line of sight, according to the embodiment of the present
invention.

[0056]FIG. 8 illustrates an example of a data structure of Earth's
surface data.

[0057]FIG. 9 illustrates an example of a data structure of viewpoint
data.

[0058] FIG. 10 is an explanatory diagram illustrating an example of a
relation, in an initial state, of the virtual Earth object with respect
to a position of the viewpoint and a line of sight according to the
embodiment of the present invention.

[0059] FIG. 11 is a diagram illustrating an example of an allowable range.

[0060] FIG. 12 is a diagram illustrating another example of the allowable
range.

[0061] FIG. 13 is a flow chart illustrating an example of a flow of
processing performed in the entertainment system according to the
embodiment of the present invention.

[0062] FIG. 14 is a flow chart illustrating the example of the flow of the
processing performed in the entertainment system according to the
embodiment of the present invention.

[0063] FIG. 15 is a flow chart illustrating an example of a flow of
processing performed in an entertainment system according to another
embodiment of the present invention.

[0064] FIG. 16 illustrates another example of the data structure of the
viewpoint data.

[0065] FIG. 17 is an explanatory diagram illustrating an example of a
relation of a virtual Earth object with respect to a position of a
viewpoint and a line of sight according to the another embodiment of the
present invention.

[0066] FIG. 18 illustrates an example of a image rendering a scene viewed
from a viewpoint in a line of sight in a virtual space according to a
related art.

BEST MODES FOR CARRYING OUT THE INVENTION

[0067] In the following, an embodiment of the present invention is
described in detail with reference to the accompanying drawings.

[0068]FIG. 1 is a diagram illustrating a hardware configuration of an
entertainment system (image display device) according to this embodiment
of the present invention. As illustrated in FIG. 1, the entertainment
system 10 is a computer system which includes a micro processing unit
(MPU) 11, a main memory 20, an image processing unit 24, a monitor 26, an
input-output processing unit 28, a sound processing unit 30, a speaker
32, an optical disc reading unit 34, an optical disc 36, a hard disk 38,
interfaces (I/F) 40 and 44, a controller 42, a camera unit 46, and a
network interface 48.

[0069]FIG. 2 is a diagram illustrating a configuration of the MPU 11. As
illustrated in FIG. 2, the MPU 11 includes a main processor 12,
sub-processors 14a, 14b, 14c, 14d, 14e, 14f, 14g, and 14h, a bus 16, a
memory controller 18, and an interface (I/F) 22.

[0070] The main processor 12 carries out various kinds of information
processing and performs control on the sub-processors 14a to 14h, based
on an operating system stored in a read only memory (ROM) (not shown), a
program and data read out from the optical disc 36 such as a digital
versatile disk (DVD)-ROM, a program and data supplied via a communication
network, and the like.

[0071] The sub-processors 14a to 14h carry out various kinds of
information processing according to an instruction from the main
processor 12, and perform control on the respective units of the
entertainment system 10, based on a program and data read out from the
optical disc 36 such as a DVD-ROM, a program and data supplied via a
communication network, and the like.

[0072] The bus 16 is used for exchanging an address and data among the
respective units of the entertainment system 10. The main processor 12,
the sub-processors 14a to 14h, the memory controller 18, and the
interface 22 are mutually connected via the bus 16, so that data may be
exchanged therebetween.

[0073] The memory controller 18 accesses the main memory 20 according to
an instruction from the main processor 12 and the sub-processors 14a to
14h. A program and data read out from the optical disc 36 or the hard
disk 38 and a program and data supplied via a communication network are
written into the main memory 20 as appropriate. The main memory 20 is
also used as a working memory of the main processor 12 and the
sub-processors 14a to 14h.

[0074] The image processing unit 24 and the input-output processing unit
28 are connected to the interface 22. The main processor 12 and the
sub-processors 14a to 14h exchange data with the image processing unit 24
or with the input-output processing unit 28 via the interface 22.

[0075] The image processing unit 24 includes a graphical processing unit
(GPU) and a frame buffer. The GPU renders various screens on the frame
buffer, based on image data supplied from the main processor 12 or the
sub-processors 14a to 14h. The screens formed on the frame buffer are
converted into a video signal at a predetermined timing, and output to
the monitor 26. It should be noted that the monitor 26 may be implemented
as, for example, a home-use television receiver.

[0076] The input-output processing unit 28 is connected to the sound
processing unit 30, the optical disc reading unit 34, the hard disk 38,
and the interfaces 40 and 44. The input-output processing unit 28
controls the main processor 12 and the sub-processors 14a to 14h to
exchange data with the sound processing unit 30, the optical disc reading
unit 34, the hard disk 38, the interfaces 40 and 44, and the network
interface 48.

[0077] The sound processing unit 30 includes a sound processing unit (SPU)
and a sound buffer. The sound buffer stores various kinds of sound data,
such as game music, game sound effects, a message, and the like, which
are read out from the optical disc 36 or the hard disk 38. The SPU
reproduces the various kinds of sound data and outputs the reproduced
data from the speaker 32. It should be noted that the speaker 32 may be
implemented as, for example, a built-in speaker of a home-use television
receiver.

[0078] The optical disc reading unit 34 reads a program and data stored in
the optical disc 36, according to an instruction from the main processor
12 and the sub-processors 14a to 14h. It should be noted that the
entertainment system 10 may be configured to be able to read a program
and data stored in any computer-readable information storage medium other
than the optical disc 36.

[0079] The optical disc 36 includes a general optical disc
(computer-readable information storage medium), such as a DVD-ROM. The
hard disk 38 is also a general hard disk device. The optical disc 36 and
the hard disk 38 store various kinds of programs and data in a
computer-readable manner.

[0080] The interfaces (I/F) 40 and 44 are used for connecting various
peripheral devices, such as the controller 42 and the camera unit 46.
Such an interface may be implemented as, for example, a universal serial
bus (USB) interface.

[0081] The controller 42 serves as general-purpose operation input means
for use by a user to input various kinds of operations (for example, game
operation). The input-output processing unit 28 scans the states of the
respective units of the controller 42 at predetermined intervals (for
example, every 1/60 seconds), and supplies the result as operational
states to the main processor 12 or the sub-processors 14a to 14h. The
main processor 12 or the sub-processors 14a to 14h determine the contents
of an operation performed by the user, based on the operational states.
It should be noted that the entertainment system 10 is configured to be
connectable to a plurality of controllers 42, and the main processor 12
and the sub-processors 14a to 14h carry out various kinds of processing
based on the operational states input from the respective controllers 42.

[0082] The camera unit 46 includes, for example, a publicly-known digital
camera, and inputs a captured image of black/white, gray-scale, or color,
at predetermined intervals (for example, every 1/60 seconds). The camera
unit 46 according to this embodiment inputs the captured image as image
data in the Joint Photographic Experts Group (JPEG) format. The camera
unit 46 is placed on the monitor 26, in a state in which, for example,
the lens thereof is directed to the user, and connected to the interface
44 via a cable. The network interface 48 is connected to the input-output
processing unit 28 and a network, so as to relay data communication
carried out by the entertainment system 10 via the network with another
entertainment system 10.

[0083]FIG. 3A is a perspective view illustrating an example of the
controller 42. FIG. 3B is an upper side view illustrating an example of
the controller 42. As illustrated in FIG. 3A, the controller 42 is
connected to the entertainment system 10 via a controller cable 62, and
is provided with a direction button group 60 and a left operation stick
54 on the left side of a surface 42a, and with a button group 58 and a
right operation stick 56 on the right side of the surface 42a. Further,
as illustrated in FIG. 3B, on a deep side surface of the controller 42,
there are provided a first left button 50L and a first right button 50R
on the left and right of the surface 42a side, respectively, and a second
left button 52L and a second right button 52R on the left and right of
the rear surface side, respectively. When the user holds right and left
portions of a casing of the controller 42 with both hands, the left thumb
comes to the direction button group 60 and the left operation stick 54
and the right thumb comes to the button group 58 and the right operation
stick 56. At least one of the right index finger and the right middle
finger comes to the first right button 50R or the second right button
52R, and at least one of the left index finger and the left middle finger
comes to the first left button 50L or the second left button 52L.

[0084] The direction button group 60, the button group 58, the first left
button 50L, the first right button 50R, the second left button 52L, the
second right button 52R are each formed of a pressure-sensitive button,
which is provided with a pressure sensor. When the user depresses those
buttons, a digital value of one of 256 levels on a scale of 0 to 255 is
input to the entertainment system 10 according to the depressing force.
Specifically, in the entertainment system 10, the digital value is used
to determine that, for example, when a digital value of 0 is input from
the controller 42, the corresponding button is not depressed, whereas
when a digital value of 255 is input, the corresponding button is
depressed with a maximum depressing force.

[0085] The left operation stick 54 and the right operation stick 56 are
each an operating member shaped like a stick, which stand upright on a
surface of the casing of the controller 42, and are capable of being
tilted in all directions at a predetermined angle from the upright state.
As illustrated in FIG. 3A, the longitudinal direction of the casing of
the controller 42 is defined as an X-axis direction (rightward direction
in FIG. 3A is set as a positive direction), and the depth direction of
the casing, the direction being orthogonal to the X-axis direction, is
defined as a Y-axis direction (direction extending from the front to the
back in FIG. 3A is set as a positive direction). The posture (operating
state) of the left operation stick 54 is represented by tilts in the
X-axis direction and the Y-axis direction (posture data (X, Y)), and the
tilts are each input as a digital value on a scale of 0 to 255 to the
entertainment system 10. Specifically, when X has a value equal to or
close to 127 and 128, it is indicated that the left operation stick 54 is
not tilted in the X-axis direction. Alternatively, when X=255, it is
indicated that the left operation stick 54 is tilted to the maximum in
the positive direction of the X-axis (rightward direction in FIG. 3A).
Further, when X=0, it is indicated that the left operation stick 54 is
tilted to the maximum in the negative direction of the X-axis (leftward
direction in FIG. 3A). The same applies to the Y-axis direction. Further,
the right operation stick 56 may be operated similarly as in the case of
the left operation stick 54. In this manner, the entertainment system 10
is capable of identifying a current state (posture) of tilt of each of
the left operation stick 54 and the right operation stick 56. Further,
the left operation stick 54 and the right operation stick 56 are each
also formed of a pressure-sensitive button similar to those forming the
direction button group 60, the button group 58, and the like, and may be
depressed in the shaft direction of the stick.

[0086] Further, the controller 42 includes an embedded oscillator
(vibrator). The vibrator vibrates by order of the MPU 11.

[0087] In the following, a description is given of the embodiment of the
present invention in which the entertainment system 10 with the
above-mentioned hardware configuration is implemented as an image display
device.

[0088] First, an outline of this embodiment is described. In this
embodiment, the entertainment system 10 displays, on a screen of the
monitor 26, an image rendering a scene viewed from a viewpoint 66 (66a to
66j) in a line of sight 68 (68a to 68j) in a virtual space 64 having at
least one virtual object disposed therein (scene depicting a view field
region 70 which is defined based on a position of the viewpoint 66 and
the line of sight 68), as illustrated in FIGS. 4A to 4C. In this
embodiment, in an initial state, an image rendering a scene viewed from
the viewpoint 66a in the line of sight 68a is displayed on the screen of
the monitor 26. Then, a user of the entertainment system 10 operates the
controller 42, to thereby freely move the position of the viewpoint 66
and the line of sight 68.

[0089] In this embodiment, as illustrated in FIG. 4A, a virtual object
(virtual Earth object 72) depicting the Earth (Earth's surface) is
disposed in the virtual space 64. FIG. 4B illustrates a first region 72a,
which is a part of the Earth's surface rendered on the virtual Earth
object 72 illustrated in FIG. 4A, and FIG. 4C illustrates a second region
72b, which is another part of the Earth's surface rendered on the virtual
Earth object 72 illustrated in FIG. 4A. As illustrated in FIGS. 4A to 4C,
a mountain 74, hills 76 (76a to 76n), and a cliff 78 are rendered
three-dimensionally on a surface of the virtual Earth object 72.

[0090]FIG. 5A illustrates an example of an image to be displayed on the
screen of the monitor 26. The image renders a scene viewed from the
viewpoint 66a in the line of sight 68a. As illustrated in FIG. 5A, in
this embodiment, an image rendering the virtual Earth object 72 is shaded
in part on the right side, indicating that sunlight does not reach the
shaded part. The virtual Earth object 72 as a whole has clouds rendered
in scenery viewed from a meteorological satellite.

[0091]FIG. 5B illustrates an example of another image to be displayed on
the screen of the monitor 26. The image renders a scene viewed from the
viewpoint 66b in the line of sight 68b. As illustrated in FIG. 5B, the
user of the entertainment system 10 operates the controller 42, so that
the position of the viewpoint 66 is brought closer to the virtual Earth
object 72. In the process of changing the position of the viewpoint 66,
the image rendering the virtual Earth object 72 is updated to an image
illustrating a map centered on Japan. Then, in this embodiment, a
vibrator provided to the controller 42 vibrates when the image having
clouds rendered in scenery viewed from a meteorological satellite is
updated to the image illustrating a map centered on Japan.

[0092]FIG. 5C illustrates an example of a further image to be displayed
on the screen of the monitor 26. The image renders a scene viewed from
the viewpoint 66c in the line of sight 68c. As illustrated in FIG. 5C,
the user of the entertainment system 10 operates the controller 42, so
that the position of the viewpoint 66 is brought still closer to the
virtual Earth object 72. In the process of changing the position of the
viewpoint 66, the image rendering the virtual Earth object 72 is updated
to an image with higher resolution. Further, in this embodiment, the
viewpoint 66 moves at a lower speed as the viewpoint 66 comes closer to
the virtual Earth object 72. In other words, as the position of the
viewpoint 66 moves from the viewpoint 66a to the viewpoint 66c, the
movement speed of the viewpoint 66 is slowed down.

[0093]FIG. 5D illustrates an example of a still further image to be
displayed on the screen of the monitor 26. The image renders a scene
viewed from the viewpoint 66d in the line of sight 68d. As illustrated in
FIG. 5D, the user of the entertainment system 10 operates the controller
42, so that the position of the viewpoint 66 is brought further closer to
the virtual Earth object 72, and an image illustrating the mountain 74
depicted three-dimensionally on the Earth's surface of the virtual Earth
object 72 is displayed on the screen of the monitor 26.

[0094]FIG. 5E illustrates an example of a yet further image to be
displayed on the screen of the monitor 26. The image renders a scene
viewed from the viewpoint 66e in the line of sight 68e. As illustrated in
FIG. 5E, the user of the entertainment system 10 operates the controller
42, so that a pitch angle theta is changed about a pitch angle change
center point 80 (see FIG. 4B). Here, the pitch angle theta is an angle
formed between two straight lines. One of the straight lines passes
through the pitch angle change center point 80 and the viewpoint 66. The
other one of the straight lines is perpendicular to a region indicating
the virtual object (virtual Earth object 72 in this embodiment) and also
passes through the pitch angle change center point 80. Here, a distance
between the pitch angle change center point 80 and the viewpoint 66 is
referred to as pitch angle change radius r. At this time, the monitor 26
displays, on an upper side of the screen, an image depicting a contour,
that is, a horizon B1, of the virtual Earth object 72. It should be noted
that the pitch angle change center point 80 is described later in detail.

[0095]FIG. 5F illustrates an example of a yet further image to be
displayed on the screen of the monitor 26. The image renders a scene
viewed from the viewpoint 66f in the line of sight 68f. As illustrated in
FIG. 5F, the user of the entertainment system 10 operates the controller
42, so that a pitch angle theta is further changed about the pitch angle
change center point 80. At this time, the monitor 26 displays, near the
center of the screen, the image depicting the horizon B1.

[0096] In this state, if the user tries to change the pitch angle theta
further about the pitch angle change center point 80, the pitch angle
theta is prevented from being changed in this embodiment. In this manner,
the image of the virtual Earth object 72 that should be displayed on the
screen of the monitor 26 is prevented from completely falling out of the
screen, or the image of the virtual Earth object 72 that should be
displayed on the screen of the monitor 26 is prevented from falling out,
for the most part, of the screen as illustrated in FIG. 18.

[0097] The pitch angle change center point 80 is disposed away from the
surface of the virtual Earth object 72, and hence, as illustrated in
FIGS. 5D to 5F, an image illustrating a top 74a of the mountain 74 is
displayed at a lower position on the screen of the monitor 26 as the
pitch angle theta is changed about the pitch angle change center point
80. In this manner, the user is allowed to easily view an image behind
the top 74a of the mountain 74.

[0098]FIG. 5G illustrates an example of a yet further image to be
displayed on the screen of the monitor 26. The image renders a scene
viewed from the viewpoint 66g in the line of sight 68g. FIG. 5H
illustrates an example of a yet further image to be displayed on the
screen of the monitor 26. The image renders a scene viewed from the
viewpoint 66h in the line of sight 68h. FIG. 5I illustrates an example of
a yet further image to be displayed on the screen of the monitor 26. The
image renders a scene viewed from the viewpoint 66i in the line of sight
68i. FIG. 5J illustrates an example of a yet further image to be
displayed on the screen of the monitor 26. The image renders a scene
viewed from the viewpoint 66j in the line of sight 68j. As illustrated in
FIGS. 5G to 5J, an image depicting the hills 76 is displayed on the
screen of the monitor 26. At this time, the user operates the controller
42 to perform a viewpoint moving operation so that the viewpoint 66 is
moved to the right along the Earth's surface of the virtual Earth object
72. As a result, the viewpoint 66 moves from the position of the
viewpoint 66g to the position of the viewpoint 66j by way of the position
of the viewpoint 66h and the position of the viewpoint 66i. The viewpoint
66 is moved upward when the viewpoint 66 moves from the position of the
viewpoint 66g to the position of the viewpoint 66h, while the viewpoint
66 is moved downward when the viewpoint 66 moves from the position of the
viewpoint 66h to the position of the viewpoint 66i. Further, the
viewpoint 66 is significantly moved upward when the viewpoint 66 is moved
from the position of the viewpoint 66i to the position of the viewpoint
66j. In the manner as described above, the user of the entertainment
system 10 may enjoy sensations as if the user is moving along the Earth's
surface of the virtual Earth object 72.

[0099] Next, a function to be implemented by the entertainment system 10
according to this embodiment is described with reference to FIG. 6, which
is a functional block diagram, and FIG. 7, which is an explanatory
diagram illustrating an example of a relation of the virtual Earth object
72 with respect to the position of the viewpoint 66 and the line of sight
68, according to this embodiment.

[0101] The virtual object data storage unit 82 is implemented mainly by
the main memory 20 and the hard disk 38. The virtual object data storage
unit 82 stores virtual object data, such as polygon data and texture
data, on a virtual object. In this embodiment, for example, the virtual
object data storage unit 82 specifically stores Earth's surface data 124
rendering the Earth's surface of the virtual Earth object 72 (see FIG.
8). FIG. 8 illustrates an example of a data structure of the Earth's
surface data 124 according to this embodiment. The Earth's surface data
124 contains reference surface data 126 and geographical surface data
128. The reference surface data 126 is polygon data representing
positions of a plurality of polygons in the virtual space 64, the
plurality of polygons rendering reference surfaces 130 (for example,
ocean surface) of the virtual Earth object 72. In this embodiment, the
reference surface 130 is basically spherical in shape. Then, the
geographical surface data 128 includes polygon data and texture data. The
polygon data represents positions of a plurality of polygons in the
virtual space 64, the plurality of polygons rendering geographical
surfaces (geographical surface 132) including the mountain 74, the hills
76, and the cliff 78 to be depicted on the surface of the virtual Earth
object 72. The texture data is associated with each polygon represented
by the polygon data, and represents a texture to be mapped to each
polygon. It should be noted that the reference surface data 126 and the
geographical surface data 128 may include data indicating a
correspondence relation between a combination of a latitude and a
longitude and a position in the virtual space 64.

[0102] Further, the virtual object data storage unit 82 may manage and
store, in a stepwise manner, a plurality of reference surface data items
126 and geographical surface data items 128 which are different from one
another in accuracy. Alternatively, the virtual object data storage unit
82 may store polygon data and texture data acquired by the virtual object
data acquisition unit 84 to be described later.

[0103] The virtual object data acquisition unit 84 is implemented mainly
by the MPU 11, the input-output processing unit 28, and the network
interface 48. The virtual object data acquisition unit 84 acquires
virtual object data from an information processing apparatus such as a
server on a network.

[0104] In this embodiment, the entertainment system 10 is capable of
communicating with a data provision server (not shown) on a network via
the network interface 48. Then, the virtual object data acquisition unit
84 transmits, to the data provision server, data indicating a positional
relation of the position of the viewpoint 66 and the line of sight 68
with respect to the virtual Earth object 72. In response to this, the
data provision server transmits the Earth's surface data 124 to be
disposed in the virtual space 64, to the virtual object data acquisition
unit 84. The virtual object data acquisition unit 84 acquires the Earth's
surface data 124 transmitted from the data provision server.
Specifically, for example, the virtual object data acquisition unit 84
acquires, based on the position of the viewpoint 66, polygon data in a
size corresponding to the distance to the virtual object at the time and
texture data to be mapped to each polygon, from the data provision
server.

[0105] The virtual space display unit 86 is implemented mainly by the MPU
11, the image processing unit 24, and the monitor 26. The virtual space
display unit 86 displays, on the screen of the monitor 26, an image
depicting a scene viewed from the viewpoint 66 in the line of sight 68 in
the virtual space 64 (scene depicting the view field region 70 which is
defined based on the position of the viewpoint 66 and the line of sight
68). Specifically, the virtual space display unit 86 displays, on the
screen of the monitor 26, an image rendering the view field region 70
which is defined according to the position of the viewpoint 66 and the
line of sight 68, the image being based on the coordinates of a vertex of
each polygon represented by polygon data contained in the virtual object
data on the virtual objects in the view field region 70, and texture data
representing a texture to be mapped to each polygon. Specifically,
displayed on the screen of the monitor 26 in this embodiment is, for
example, an image based on the coordinates of the vertex of each polygon
represented by polygon data contained in the geographical surface data
128 on the virtual Earth object 72 in the view field region 70 and on the
texture data representing a texture to be mapped to each polygon.

[0106] Here, the virtual space display unit 86 may select the geographical
surface data 128 corresponding to an image to be displayed on the screen
of the monitor 26, according to a positional relation (for example,
distance) between the viewpoint 66 and the virtual object (for example,
virtual Earth object 72). In this embodiment, in a case where the
distance between the viewpoint 66 and the virtual Earth object 72 is
large, the virtual space display unit 86 may display, on the screen of
the monitor 26, an image based on texture data on clouds observed from a
satellite, which is stored in advance in the virtual object data storage
unit 82 (see FIG. 5A). Alternatively, in a case where the distance
between the viewpoint 66 and the virtual Earth object 72 is reduced along
with the movement of the viewpoint 66, the virtual space display unit 86
may display, on the screen of the monitor 26, an image based on texture
data rendering a map centered on Japan (see FIG. 5B). It should be noted
that, at this time, the virtual object data acquisition unit 84 may
acquire the image based on texture data rendering a map centered on
Japan, when the viewpoint 66 is moved. As described above, the virtual
space display unit 86 displays an image which is stored in advance in the
entertainment system 10 while waiting for the virtual object data
acquisition unit 84 to acquire another image, to thereby allow the user
of the entertainment system 10 to enjoy the image even during the waiting
time before the acquisition of the another image from the data provision
server, which reduces stress of having to wait for the another image to
be acquired from the data provision server.

[0107] It should be noted that the virtual space display unit 86 may
instruct the controller 42 to vibrate the vibrator provided to the
controller 42 at a timing when the displayed image is updated.
Specifically, for example, when an image displayed on the screen of the
monitor 26 is switched from an image that is stored in advance in the
virtual object data storage unit 82 to an image acquired by the virtual
object data acquisition unit 84, the virtual space display unit 86 may
instruct the controller 42 to vibrate the vibrator provided to the
controller 42.

[0108] Alternatively, the virtual space display unit 86 may display an
image stored in the virtual object data storage unit 82 on the screen of
the monitor 26, the image corresponding to the distance between the
position indicating the viewpoint 66 and the position indicating the
virtual Earth object 72. Specifically, for example, the virtual space
display unit 86 may display a low-definition image on the screen of the
monitor 26 in a case where the distance between the position indicating
the viewpoint 66 and the position indicating the virtual Earth object 72
is large, whereas the virtual space display unit 86 may display a
high-definition image on the screen of the monitor 26 in a case where the
distance between the position indicating the viewpoint 66 and the
position indicating the virtual Earth object 72 is small (see FIGS. 5B to
5D). Still alternatively, the virtual space display unit 86 may first
display a low-definition image on the screen of the monitor 26, and when
the acquisition of the high-definition image is completed by the virtual
object data acquisition unit 84, the virtual space display unit 86 may
display the high-definition image on the screen of the monitor 26.

[0109] The viewpoint data storage unit 88 is implemented mainly by the
main memory 20 and the hard disk 38. The viewpoint data storage unit 88
stores viewpoint data 134 on a position of the viewpoint 66 and the line
of sight 68 in the virtual space 64 (see FIG. 9). FIG. 9 illustrates an
example of a data structure of the viewpoint data 134 according to this
embodiment. It should be noted that the view field region 70 is defined
based on the position of the viewpoint 66 and the line of sight 68
indicated by the viewpoint data 134. The viewpoint data 134 is described
later in detail.

[0110] The point-of-gaze position calculation unit 90 is implemented
mainly by the MPU 11. The point-of-gaze position calculation unit 90
calculates the position indicating a point of gaze 136, which is a point
of intersection where a straight line extending from a current position
of the viewpoint 66 in the line of sight 68 intersects with a virtual
object existing on the straight line (see FIG. 10).

[0111] FIG. 10 is an explanatory diagram illustrating an example of a
relation, in an initial state, of the virtual Earth object 72 with
respect to a position of the viewpoint 66 and the line of sight 68
according to this embodiment. In this embodiment, in the initial state,
the line of sight 68 is directed perpendicularly to the Earth's surface
(for example, reference surface 130 or geographical surface 132) of the
virtual Earth object 72 (see FIG. 4A). Then, the point-of-gaze position
calculation unit 90 calculates the position of a point of intersection
where a straight line extending from a position of the viewpoint 66 in
the line of sight 68 intersects with the geographical surface 132
(specifically, point of intersection of the straight line with a polygon
represented by polygon data contained in the geographical surface data
128) in the initial state, as a position indicating the point of gaze
136.

[0112] It should be noted that the point-of-gaze position calculation unit
90 may calculate the position indicating the point of gaze 136, based on
a position of the viewpoint 66 in a state other than the initial state.
Further, when the point-of-gaze position calculation unit 90 calculates
the position indicating the point of gaze 136, the line of sight 68 is
not necessarily directed perpendicularly to the virtual object. Further,
the point-of-gaze position calculation unit 90 may calculate, as the
position indicating the point of gaze 136, the position of a point of
intersection where the straight line extending from the position of the
viewpoint 66 in the line of sight 68 intersects with the reference
surface 130 (point of intersection of the straight line with a polygon
represented by polygon data contained in the reference surface data 126)
in the initial state.

[0113] The pitch angle change center point position calculation unit 92 is
implemented mainly by the MPU 11. The pitch angle change center point
position calculation unit 92 calculates the position of the pitch angle
change center point 80 which exists on a straight line extending from the
viewpoint 66 in the line of sight 68. Here, the pitch angle change center
point position calculation unit 92 may calculate the position of the
pitch angle change center point 80 which exists between the position of
the viewpoint 66 and the position indicating a virtual object (for
example, virtual Earth object 72) when the line of sight 68 is directed
to the virtual object (for example, virtual Earth object 72).
Alternatively, the pitch angle change center point position calculation
unit 92 may calculate the position of the pitch angle change center point
80 which exists between a position indicating the point of gaze 136 and a
position of the viewpoint 66, based on a relation between the position
indicating the point of gaze 136 and the position of the viewpoint 66
(see FIG. 10). Still alternatively, the pitch angle change center point
position calculation unit 92 may calculate, as the position of the pitch
angle change center point 80, the position of a point which internally
divides, in given proportions, a distance between the position indicating
the point of gaze 136 and the position of the viewpoint 66.

[0115] The pitch angle change center point position data 138 represents
the position of the pitch angle change center point 80 calculated by the
pitch angle change center point position calculation unit 92, and is
represented by, for example, a three-dimensional coordinate value.

[0116] The yaw angle data 140 represents a yaw angle phi formed by the
position of the viewpoint 66 with respect to a yaw angle reference
direction 146 in a polar coordinate system centered on the position of
the pitch angle change center point 80, as illustrated in FIG. 7. Here,
the yaw angle reference direction 146 specifically represents, for
example, a direction equivalent to a northward direction.

[0117] The maximum pitch angle data 142 and the relative pitch angle data
144 represent the pitch angle theta at the position of the viewpoint 66
in the polar coordinate system centered on the position of the pitch
angle change center point 80. The maximum pitch angle data 142 and the
relative pitch angle data 144 are described later in detail.

[0118] Here, a surface which passes through the pitch angle change center
point 80 and is equivalent to the reference surface 130 (for example,
surface parallel to the reference surface) is referred to as pitch angle
change center point reference surface 148. In this case, the yaw angle
phi is formed between the yaw angle reference direction 146 and a
direction from the position of the pitch angle change center point 80 to
the position of the viewpoint 66 with the pitch angle theta of 90
degrees. Here, the direction from the position of the pitch angle change
center point 80 to the position of the viewpoint 66 with the pitch angle
theta of 90 degrees is referred to as yaw angle direction 150.

[0119] It should be noted that the data structure of the viewpoint data
134 is not limited to the above-mentioned data structure.

[0120] Specifically, for example, the viewpoint data storage unit 88 may
store minimum depression data representing a minimum depression, rather
than the maximum pitch angle data 142 representing a maximum pitch angle
theta-max. It should be noted that there is a relation between the
minimum depression and the maximum pitch angle theta-max that the sum of
these angles is 90 degrees. The maximum pitch angle theta-max is
described later in detail.

[0121] Further, the viewpoint data 134 may be represented by, for example,
yaw angle direction data representing the yaw angle direction 150, line
of sight data representing the line of sight 68, pitch angle change
center point movement reference direction data representing a pitch angle
change center point movement reference direction 152 which serves as a
reference to be used when the pitch angle change center point 80 is moved
by the pitch angle change center point moving unit 112, and a pitch angle
change reference direction 154 representing a direction which serves as a
reference to be used when the pitch angle of the viewpoint 66 is changed
by the pitch angle change unit 114. It should be noted that, in this
embodiment, a vector indicating the pitch angle change center point
movement reference direction 152 is in the reverse direction to a vector
indicating the yaw angle direction 150. Further, in this embodiment, the
pitch angle change reference direction 154 is a direction from the
current position of the viewpoint 66 to the position of the viewpoint 66
with the pitch angle theta of 0 degrees, along a spherical surface
(hereinafter, referred to as pitch angle change surface 156) centering
around the pitch angle change center point 80 with its radius as a pitch
angle change radius r.

[0122] The reference distance calculation unit 94 is implemented mainly by
the MPU 11. The reference distance calculation unit 94 calculates, based
on virtual object data (in this embodiment, geographical surface data
128), a reference distance representing a distance from the reference
surface 130 in the surface of the virtual object. In this embodiment,
specifically, for example, the reference distance calculation unit 94
first calculates the position of a pitch angle change center point
projected point 158, which is a point of intersection where a straight
line passing through the pitch angle change center point 80 as being
perpendicular to the reference surface 130 intersects with the
geographical surface 132 (specifically, for example, point of
intersection of the straight line with a polygon represented by polygon
data contained in the geographical surface data 128). Then, the reference
distance calculation unit 94 calculates the distance between the pitch
angle change center point projected point 158 and the reference surface
130, as a first geographical surface distance D1 (see FIG. 7). The
reference distance calculation unit 94 further calculates the position of
a viewpoint projected point 160, which is a point of intersection where a
straight line passing through the viewpoint 66 as being perpendicular to
the reference surface 130 intersects with the geographical surface 132.
The reference distance calculation unit 94 then calculates the distance
between the viewpoint projected point 160 and the reference surface 130,
as a second geographical surface distance D2 (see FIG. 7).

[0123] After that, the reference distance calculation unit 94 calculates a
geographical surface reference distance D, based on the first
geographical surface distance D1 and the second geographical surface
distance D2. In this embodiment, the reference distance calculation unit
94 calculates the value of the first geographical surface distance D1, as
a value of the geographical surface reference distance D.

[0124] Alternatively, the reference distance calculation unit 94 may
calculate the value of the second geographical surface distance D2, as a
value of the geographical surface reference distance D. Still
alternatively, the reference distance calculation unit 94 may calculate a
mean value of the value of the first geographical surface distance D1 and
the value of the second geographical surface distance D2, as a value of
the geographical surface reference distance D.

[0126] The reference distance calculation unit 94 may update the reference
distance data stored in the reference distance data storage unit 96 to
the reference distance data representing a reference distance calculated
by the reference distance calculation unit 94, in a case where a
difference between the calculated reference distance and the reference
distance stored in the reference distance data storage unit 96 is larger
than a given value (for example, geographical surface reference distance
buffer delta-D).

[0127] The viewpoint movement speed determination unit 98 is implemented
mainly by the MPU 11. The viewpoint movement speed determination unit 98
determines a movement speed v of the viewpoint 66, based on a virtual
object-to-viewpoint distance, according to a viewpoint moving operation
performed by the user. The virtual object-to-viewpoint distance is a
distance based on a relation between a position indicating a virtual
object (virtual Earth object 72 in this embodiment) included in the view
field region 70 and a position indicating the viewpoint 66.

[0128] Alternatively, the viewpoint movement speed determination unit 98
may determine the value of the movement speedy of the viewpoint 66 in a
manner that the value of the movement speed v increases as the value of
the virtual object-to-viewpoint distance increases. Specifically, for
example, the viewpoint movement speed determination unit 98 may determine
the value of the movement speed v in a manner that the value of the
movement speed v is proportional to the value of the virtual
object-to-viewpoint distance.

[0129] With this configuration, the user may carry out an operation of
moving the viewpoint with high precision.

[0130] In this embodiment, specifically, for example, the viewpoint
movement speed determination unit 98 calculates a pitch angle change
center point-to-geographical surface distance d1, which is a distance
between the pitch angle change center point 80 and the pitch angle change
center point projected point 158 (or geographical surface 132). At this
time, the viewpoint movement speed determination unit 98 may calculate
the pitch angle change center point-to-geographical surface distance d1,
based on a difference value between a distance from the pitch angle
change center point 80 to the reference surface 130 and the geographical
surface reference distance D indicated by the geographical surface
reference distance data stored in the reference distance data storage
unit 96 (see FIG. 7).

[0131] Then, the viewpoint movement speed determination unit 98 calculates
the value of the pitch angle change radius r, based on the value of the
pitch angle change center point-to-geographical surface distance d1.
Specifically, for example, the viewpoint movement speed determination
unit 98 calculates, as the value of the pitch angle change radius r, a
value obtained by multiplying the value of the pitch angle change center
point-to-geographical surface distance d1 by a given value. As described
above, the pitch angle change radius r may be proportional at a given
ratio to the pitch angle change center point-to-geographical surface
distance d1. It is obvious that the viewpoint movement speed
determination unit 98 may calculate, at this time, the value of the pitch
angle change radius r.

[0132] In this embodiment, the virtual object-to-viewpoint distance is a
sum (d1+r) of the pitch angle change center point-to-geographical surface
distance d1 and the pitch angle change radius r. In other words, the
viewpoint movement speed determination unit 98 determines the movement
speed of the viewpoint 66, based on the value of (d1+r).

[0133] It is obvious that the method for calculating the virtual
object-to-viewpoint distance is not limited to the above-mentioned
method.

[0134] Alternatively, the viewpoint movement speed determination unit 98
may determine the movement speed of the viewpoint 66 in a direction along
the reference surface 130 or along the geographical surface 132. Still
alternatively, the movement speed of the viewpoint 66 may be determined
with respect to a direction perpendicular to the reference surface 130 or
to the geographical surface 132. Still alternatively, the viewpoint
movement speed determination unit 98 may determine the movement speed of
the pitch angle change center point 80, instead of the movement speed of
the viewpoint 66.

[0136] The allowable range calculation unit 102 is implemented mainly by
the MPU 11. The allowable range calculation unit 102 calculates, based on
a size of an area where the view field region 70 overlaps with a closed
region occupied by a virtual object (for example, virtual Earth object 72
in this embodiment), an allowable range 162 such as an allowable range
for moving the position of the viewpoint 66 or an allowable range for
changing the line of sight 68 (see FIG. 11). FIG. 11 is a diagram
illustrating an example of the allowable range 162. FIG. 12 is a diagram
illustrating another example of the allowable range 162. The allowable
range calculation unit 102 may calculate, as illustrated in FIG. 12, only
the allowable range for moving the position of the viewpoint 66, or may
calculate only the allowable range for changing the line of sight 68.
Naturally, the allowable range calculation unit 102 may calculate both of
the allowable range for moving the position of the viewpoint 66 and the
allowable range for changing the line of sight 68.

[0137] In this embodiment, the allowable range calculation unit 102
calculates, as illustrated in FIG. 11, a range of the pitch angle theta.
Then, the allowable range calculation unit 102 calculates, as a boundary
between the inside and the outside of the allowable range, the position
of the viewpoint 66 or the line of sight 68 when a straight line passing
through the pitch angle change center point 80 and the viewpoint 66
extends in a direction equivalent to a tangent line direction with
respect to the closed region occupied by the virtual Earth object 72.
Then, the pitch angle theta at this time is referred to as maximum pitch
angle theta-max.

[0138] Here, for example, the allowable range calculation unit 102
calculates the maximum pitch angle theta-max from an equation
theta-max=arcsin {R/(R+d1)}, based on a geographical surface-to-center
distance R, which is a distance between the center of the virtual Earth
object 72 and the geographical surface 132, and the pitch angle change
center point-to-geographical surface distance d1.

[0139] Here, the allowable range calculation unit 102 may estimate the
maximum pitch angle theta-max by using a reference surface-to-center
distance R' between the center of the virtual Earth object 72 and the
reference surface, which is easy to calculate, instead of using the
geographical surface-to-center distance R. It is obvious that, at this
time, the allowable range calculation unit 102 may calculate the maximum
pitch angle theta-max by using a pitch angle change center
point-to-reference surface distance d' between the pitch angle change
center point 80 and the reference surface 130, instead of using the pitch
angle change center point-to-geographical surface distance d1.
Alternatively, the allowable range calculation unit 102 may calculate the
closed region occupied by a virtual object, which is to be used for
calculating the allowable range, based on the virtual object.
Specifically, for example, the allowable range calculation unit 102 may
calculate the closed region indicated by a virtual object, based on a
convex hull of the virtual object.

[0141] As described above, the allowable range calculation unit 102 may
calculate, as a boundary between the inside and the outside of the
allowable range 162, the position of the viewpoint 66 or the line of
sight 68 when the line of sight 68 is directed in a direction equivalent
to a tangent line direction with respect to the closed region occupied by
a virtual object (for example, virtual Earth object 72 in this
embodiment).

[0142] The operation state acquisition unit 104 acquires an operation
state of the controller 42 at predetermined intervals (in this
embodiment, specifically, every 1/60 seconds, for example). The operation
state is specifically represented by, for example, a digital value (0 to
255) indicating the depressing force or the posture data
(0<=X<=255, 0<=Y<=255). In this embodiment, at least posture
data representing the operation states of the left operation stick 54 and
the right operation stick 56 and digital values representing the
depressing forces applied to the left operation stick 54, to the right
operation stick 56, to the second left button 52L, and to the second
right button 52R are acquired. Then, the operation state acquisition unit
104 determines, based on the operation states thus acquired, the contents
of the operation performed by the user.

[0143] In this embodiment, specifically, for example, when the operation
state acquisition unit 104 has acquired posture data on the left
operation stick 54 or when the operation state acquisition unit 104 has
acquired a digital value that indicates a depressing force applied to the
second left button 52L or to the second right button 52R and is equal to
or larger than a given value, the operation state acquisition unit 104
determines that the operation performed by the user is an operation of
moving the pitch angle change center point. Alternatively, when the
operation state acquisition unit 104 has acquired posture data on the
right operation stick 56 and a digital value that indicates a depressing
force applied to the right operation stick and is equal to or larger than
a given value, the operation state acquisition unit 104 determines that
the operation performed by the user is an operation of changing the pitch
angle or an operation of changing the yaw angle. Those operations are
described later in detail.

[0144] The operation state storage unit 106 is implemented mainly by the
main memory 20 or the hard disk 38. The operation state storage unit 106
stores operation state data representing the operation state acquired by
the operation state acquisition unit 104.

[0145] The operation state change determination unit 108 is implemented
mainly by the MPU 11. The operation state change determination unit 108
compares the operation state represented by the operation state data
stored in the operation state storage unit 106 with the operation state
detected by the operation state acquisition unit 104, to thereby
determine whether or not there is a change in the detected data.

[0146] The viewpoint moving unit 110 is implemented mainly by the MPU 11.
The viewpoint moving unit 110 performs at least one of the operation of
moving the position of the viewpoint and the operation of changing the
line of sight, in response to the viewpoint moving operation performed by
the user.

[0147] At this time, the viewpoint moving unit 110 may be allowed to
perform the operation of moving the position of the viewpoint and the
operation of changing the line of sight, within the allowable range 162
calculated by the allowable range calculation unit 102. Alternatively,
the viewpoint moving unit 110 may move the position of the viewpoint 66
at the movement speed v determined by the viewpoint movement speed
determination unit 98.

[0148] The pitch angle change center point moving unit 112 is implemented
mainly by the MPU 11. The pitch angle change center point moving unit 112
moves the position of the pitch angle change center point 80 in response
to the pitch angle change center point moving operation made by the user,
and changes at least the line of sight 68 so that the line of sight 68 is
directed to the pitch angle change center point 80 from the position of
the viewpoint 66. Alternatively, when the position of the pitch angle
change center point 80 is moved, the pitch angle change center point
moving unit 112 may calculate the yaw angle phi based on the position of
the pitch angle change center point 80 thus moved.

[0149] Alternatively, the viewpoint moving unit 110 may move the viewpoint
66 in association with the movement of the pitch angle change center
point 80 made by the pitch angle change center point moving unit 112.
Specifically, for example, the viewpoint moving unit 110 may move the
viewpoint 66 by a distance covered by the movement of the pitch angle
change center point 80 made by the pitch angle change center point moving
unit 112. Still alternatively, when the pitch angle change center
point-to-geographical surface distance d1 changes in value due to the
movement made by the pitch angle change center point moving unit 112, the
viewpoint moving unit 110 may calculate the pitch angle change radius r
based on the pitch angle change center point-to-geographical surface
distance d1 thus changed, and may move the position of the viewpoint 66
based on the pitch angle change radius r thus calculated.

[0150] In this embodiment, based on the posture data (X, Y) of the left
operation stick 54 acquired by the operation state acquisition unit 104,
the pitch angle change center point moving unit 112 moves the pitch angle
change center point 80 to a position on the coordinates in which the
Y-axis direction and the X-axis direction of the left operation stick 54
are associated with the pitch angle change center point movement
reference direction 152 and with a direction of 90 degrees to the right
with respect to the pitch angle change center point movement reference
direction 152, respectively.

[0151] Specifically, for example, when the operation state acquisition
unit 104 acquires an operation state indicating that the left operation
stick 54 is operated upward, the pitch angle change center point moving
unit 112 moves the pitch angle change center point 80 in the direction of
the pitch angle change center point movement reference direction 152.
Meanwhile, when the operation state acquisition unit 104 acquires an
operation state indicating that the left operation stick 54 is operated
downward, the pitch angle change center point moving unit 112 moves the
pitch angle change center point 80 in the direction opposite to the pitch
angle change center point movement reference direction 152 (that is,
direction of the yaw angle direction 150). When the operation state
acquisition unit 104 acquires an operation state indicating that the left
operation stick 54 is operated leftward (rightward), the pitch angle
change center point moving unit 112 moves the pitch angle change center
point 80 in the direction of 90 degrees to the left (90 degrees to the
right) with respect to the pitch angle change center point movement
reference direction 152.

[0152] Further, in this embodiment, when the operation state acquisition
unit 104 has acquired a digital value that indicates a depressing force
applied to the second left button 52L and is equal to or larger than a
given value, the pitch angle change center point moving unit 112 moves
the pitch angle change center point 80 in a direction perpendicular to
the pitch angle change center point reference surface 148 and away from
the virtual Earth object 72. Alternatively, when the operation state
acquisition unit 104 has acquired a digital value that indicates a
depressing force applied to the second right button 52R and is equal to
or larger than a given value, the pitch angle change center point moving
unit 112 moves the pitch angle change center point 80 in a direction
perpendicular to the pitch angle change center point reference surface
148 and of approaching to the virtual Earth object 72.

[0153] Further, at this time, the pitch angle change center point moving
unit 112 may move the position of the pitch angle change center point 80
at a movement speed v' of the pitch angle change center point 80, which
is based on the movement speed v determined by the viewpoint movement
speed determination unit 98. Specifically, for example, when the posture
data of the left operation stick 54 acquired by the operation state
acquisition unit 104 takes the value (X, Y) and the movement speed v' of
the pitch angle change center point 80 is equal to the value of v, the
pitch angle change center point moving unit 112 may move the pitch angle
change center point 80 by (vX, vY) from the current position thereof. In
this manner, the pitch angle change center point moving unit 112 may move
the pitch angle change center point 80 at a movement speed based on a
value obtained by multiplying the value of an operation amount of the
posture data or the like by the value of the movement speed v. It is
obvious that the viewpoint moving unit 110 may move the viewpoint 66 at a
movement speed, based on the value obtained by multiplying the value of
the operation amount by the value of the movement speedy. Further, the
position of the pitch angle change center point 80 may be moved at the
movement speed v' of the pitch angle change center point 80, which is
based on the movement speed v determined by the viewpoint movement speed
determination unit 98, even in a case of moving the pitch angle change
center point 80 by the second left button 52L or the second right button
52R in a direction perpendicular to the pitch angle change center point
reference surface 148.

[0154] The pitch angle change unit 114 is implemented mainly by the MPU
11. The pitch angle change unit 114 changes the pitch angle theta about
the pitch angle change center point 80, in response to the pitch angle
changing operation performed by the user, and changes the line of sight
68 so that the line of sight 68 is directed to the pitch angle change
center point 80 from the position of the viewpoint 66 with the pitch
angle thus changed.

[0155] At this time, the pitch angle change unit 114 may change the pitch
angle theta within the range of the pitch angle theta.

[0156] The relative pitch angle data change unit 116 is implemented mainly
by the MPU 11. When the relative pitch angle data 144 is stored in the
viewpoint data storage unit 88, the relative pitch angle data change unit
116 changes the relative pitch angle data 144 in response to a relative
pitch angle changing operation performed by the user. Here, the relative
pitch angle data 144 represents a relative pitch angle theta-prime
(0<=theta-prime<=1), which is a ratio of an angle formed by a
straight line passing through the pitch angle change center point 80 and
the viewpoint 66 with a straight line that is perpendicular to a region
indicating a virtual object (virtual Earth object 72 in this embodiment)
and passes through the pitch angle change center point 80, with respect
to the maximum pitch angle theta-max.

[0157] The pitch angle calculation unit 118 is implemented mainly by the
MPU 11. The pitch angle calculation unit 118 calculates, based on the
relative pitch angle theta-prime represented by the relative pitch angle
data 144 and the maximum pitch angle theta-max, the pitch angle theta
formed by the straight line passing through the pitch angle change center
point 80 and the viewpoint with the straight line that is perpendicular
to a region indicating the virtual object and passes through the pitch
angle change center point 80. More specifically, for example, the pitch
angle calculation unit 118 may calculate the pitch angle theta, based on
a value obtained by multiplying an angle indicated by the maximum pitch
angle theta-max by the relative pitch angle theta-prime
(theta-max*theta-prime).

[0158] In this embodiment, the relative pitch angle data change unit 116
increases or decreases the relative pitch angle theta-prime represented
by the relative pitch angle data 144, based on the posture data (X, Y) of
the right operation stick 56 acquired by the operation state acquisition
unit 104. Further, in this embodiment, the pitch angle change unit 114
also increases or decreases the yaw angle phi represented by the yaw
angle data 140. That is, the pitch angle change unit 114 also changes the
yaw angle phi. Specifically, for example, when the value of Y acquired by
the operation state acquisition unit 104 is positive (negative), the
relative pitch angle data change unit 116 decreases (increases) the value
of the relative pitch angle theta-prime. Meanwhile, when the value of X
acquired by the operation state acquisition unit 104 is positive
(negative), the pitch angle change unit 114 increases (decreases) the
value of the yaw angle phi.

[0159] The pitch angle calculation unit 118 calculates the pitch angle
theta, based on the relative pitch angle data 144 thus changed. Then, the
pitch angle change unit 114 changes the pitch angle theta or the yaw
angle phi, based on the calculated value of the pitch angle theta, the
calculated value of the yaw angle phi, and the current position of the
pitch angle change center point 80. As described above, the pitch angle
change unit 114 may change the pitch angle theta or the yaw angle phi,
based on the pitch angle theta calculated by the pitch angle calculation
unit 118 and the position of the pitch angle change center point 80.

[0160] When the operation state acquisition unit 104 has acquired a
digital value that indicates a depressing force applied to the right
operation stick 56 and is equal to or larger than a given value, the
pitch angle change unit 114 changes the yaw angle phi while keeping the
pitch angle theta constant so that the viewpoint 66 is disposed at a
position where the yaw angle phi forms 180 degrees with respect to the
yaw angle reference direction 146. In this manner, the user may be
allowed to change the yaw angle phi so that the line of sight 68 is
directed north.

[0161] Further, the allowable range calculation unit 102 may recalculate
the allowable range, when the pitch angle change center point moving unit
112 has moved the position of the pitch angle change center point 80.
Specifically, for example, the pitch angle change center point moving
unit 112 may recalculate the value of the maximum pitch angle theta-max.
At this time, the pitch angle calculation unit 118 may recalculate the
pitch angle theta, based on a value obtained by multiplying an angle
indicated by the recalculated maximum pitch angle theta-max by the
relative pitch angle theta-prime (theta-max*theta-prime). Further, at
this time, the pitch angle change unit 114 may change the pitch angle
theta, based on the recalculated pitch angle theta and the position of
the pitch angle change center point 80.

[0162] The viewpoint position modification unit 120 is implemented mainly
by the MPU 11. When the viewpoint moving unit 110 moves the viewpoint 66,
the viewpoint position modification unit 120 measures a distance between
the position indicating the viewpoint 66 and the position indicating a
virtual object (virtual Earth object 72 in this embodiment). When the
distance is smaller than a given distance, the viewpoint position
modification unit 120 modifies the position of the viewpoint 66 in a
distance away from the virtual object. In this way, when the viewpoint 66
almost comes into contact with the geographical surface 132, the
viewpoint 66 is moved so as to avert the contact. Further, in this
embodiment, the viewpoint 66 may be prevented from going hidden under the
geographical surface 132 (see FIG. 5J). It should be noted that the
viewpoint position modification unit 120 may instruct the controller 42
to vibrate the vibrator provided to the controller 42 when modifying the
position of the viewpoint 66.

[0163] In this embodiment, for example, the viewpoint position
modification unit 120 calculates a viewpoint-to-geographical surface
distance d2, which is a distance from the viewpoint 66 to the viewpoint
projected point 160 (or to geographical surface 132). At this time, the
viewpoint position modification unit 120 may calculate the
viewpoint-to-geographical surface distance d2, based on a value of a
difference between the distance from the viewpoint 66 to the reference
surface 130 and the geographical surface reference distance D represented
by the geographical surface reference distance data stored in the
reference distance data storage unit 96 (see FIG. 7).

[0164] When the value of the viewpoint-to-geographical surface distance d2
is smaller than a minimum viewpoint-to-geographical surface distance d2
min, which is a given threshold value, the viewpoint position
modification unit 120 modifies the position of the viewpoint 66 so that
the value of the viewpoint-to-geographical surface distance d2 becomes
equal to or larger than the value of the minimum
viewpoint-to-geographical surface distance d2 min. Specifically, for
example, the viewpoint position modification unit 120 modifies the
position of the viewpoint 66 along a straight line that is perpendicular
to the reference surface 130 and passes through the viewpoint 66, in a
direction opposite with respect to the reference surface 130 so that the
value of the viewpoint-to-geographical surface distance d2 becomes equal
to the value of the minimum viewpoint-to-geographical surface distance d2
min. At the same time, the viewpoint position modification unit 120 may
also modify the position of the pitch angle change center point 80.

[0165] The pitch angle change center point position modification unit 122
is implemented mainly by the MPU 11. The pitch angle change center point
position modification unit 122 measures the position indicating the pitch
angle change center point 80 and the position indicating a virtual object
(for example, virtual Earth object 72 in this embodiment) and obtains a
distance therebetween, when the viewpoint moving unit 110 moves the
viewpoint 66. When the distance falls out of a given range, the pitch
angle change center point position modification unit 122 modifies the
position of the pitch angle change center point 80 so that the distance
falls within this range. At the same time, the viewpoint moving unit 110
may also modify the position of the viewpoint 66. In this manner, for
example, the position of the pitch angle change center point 80 and the
position of the viewpoint 66 may be modified when the position of the
viewpoint 66 with respect to the geographical surface 132 and the
position of the pitch angle change center point 80 with respect to the
geographical surface 132 are both largely changed as falling out of the
given range (see FIGS. 5G to 5I).

[0166] In this embodiment, for example, when the reference distance
calculation unit 94 updates the reference distance data stored in the
reference distance data storage unit 96 to reference distance data
indicating a reference distance calculated by the reference distance
calculation unit 94, the pitch angle change center point position
modification unit 122 modifies the position of the pitch angle change
center point 80, based on the difference between the reference distance
before the update and the reference distance after the update.

[0167] Next, an example of processing performed at predetermined intervals
(every 1/60 seconds in this embodiment) in the entertainment system 10
according to this embodiment is described with reference to an
explanatory diagram illustrated in FIG. 7 and flow charts illustrated in
FIGS. 13 and 14.

[0168] FIGS. 13 and 14 are flow charts illustrating processing according
to this embodiment, of the processing performed at predetermined
intervals in the entertainment system 10. The MPU 11 executes a program
supplied to the entertainment system 10 via an information communication
medium such as a DVD-ROM or via a communication network such as the
Internet, to thereby implement the processing illustrated in FIGS. 13 and
14.

[0169] First, the operation state acquisition unit 104 acquires the
operation state of the controller 42 (S1).

[0170] Then, the operation state change determination unit 108 checks
whether or not the operation state of the controller 42 is acquired in
the process of S1 (S2). In a case where the operation state change
determination unit 108 has determined that the operation state of the
controller 42 is not acquired (S2:N), the processing is ended.

[0171] In a case where the operation state change determination unit 108
has determined that the operation state of the controller 42 is acquired
(S2:Y), it is determined whether or not the operation state indicated by
the operation state data stored in the operation state storage unit 106
corresponds with the operation state acquired by the operation state
acquisition unit 104 in the process of S1 (S3).

[0172] When the operation state indicated by the operation state data
stored in the operation state storage unit 106 corresponds with the
operation state detected in the process of S1 (S3:Y), the geographical
surface reference distance data stored in the reference distance data
storage unit 96 and the movement speed data stored in the viewpoint
movement speed data storage unit 100 are acquired (S4).

[0174] Then, based on the movement speed v represented by the movement
speed data acquired in the process of S4 or on the movement speed v
determined in the process of S5, the pitch angle change center point 80
is moved by the pitch angle change center point moving unit 112 or the
relative pitch angle data 144 is changed by the relative pitch angle data
change unit 116 (S7).

[0179] Then, the viewpoint moving unit 110 calculates the position of the
viewpoint 66 and the line of sight 68, based on the current position of
the pitch angle change center point 80, the pitch angle change radius r
calculated in the process of S11, the yaw angle phi calculated in the
process of S9, and the pitch angle theta calculated in the process of
S10. The viewpoint moving unit 110 then moves the viewpoint 66 to the
calculated position and changes the line of sight 68 to the calculated
direction (S12).

[0180] Then, the reference distance calculation unit 94 calculates the
value of the first geographical surface distance D1 and the value of the
second geographical surface distance D2 (S13).

[0181] Then, the reference distance calculation unit 94 checks whether or
not a value obtained by subtracting the value of the geographical surface
reference distance D represented by the geographical surface reference
distance data stored in the reference distance data storage unit 96 from
the value of the first geographical surface distance D1 and a value
obtained by subtracting the value of the geographical surface reference
distance D represented by the geographical surface reference distance
data stored in the reference distance data storage unit 96 from the value
of the second geographical surface distance D2 are both larger than the
geographical surface reference distance buffer delta-D (S14).

[0182] In S14, when the condition specified in S14 is satisfied (S14:Y),
the reference distance calculation unit 94 updates the value of the
geographical surface reference distance D represented by the geographical
surface reference distance data stored in the reference distance data
storage unit 96 to a smaller one of the value of the first geographical
surface distance D1 and the value of the second geographical surface
distance D2 (S15). Then, the pitch angle change center point position
modification unit 122 modifies the position of the pitch angle change
center point 80 and the position of the viewpoint 66 (S16).

[0183] When the condition specified in S14 is not satisfied (S14:N), the
reference distance calculation unit 94 checks whether or not a value
obtained by subtracting the value of the first geographical surface
distance D1 from the value of the geographical surface reference distance
D represented by the geographical surface reference distance data stored
in the reference distance data storage unit 96 and a value obtained by
subtracting the value of the second geographical surface distance D2 from
the value of the geographical surface reference distance D represented by
the geographical surface reference distance data stored in the reference
distance data storage unit 96 are both larger than the geographical
surface reference distance buffer delta-D (S17). Here, when the condition
specified in S17 is not satisfied (S17:N), the process of S19 is
performed.

[0184] In S17, when the condition specified in S17 is satisfied (S17:Y),
the reference distance calculation unit 94 updates the value of the
geographical surface reference distance D represented by the geographical
surface reference distance data stored in the reference distance data
storage unit 96 to a larger one of the value of the first geographical
surface distance D1 and the value of the second geographical surface
distance D2 (S18). Then, the pitch angle change center point position
modification unit 122 modifies the position of the pitch angle change
center point 80 and the position of the viewpoint 66 (S16).

[0186] In a case where the value of the viewpoint-to-geographical surface
distance d2 is smaller than the minimum viewpoint-to-geographical surface
distance d2 min (S20:Y), the viewpoint position modification unit 120
modifies the position of the viewpoint 66 to a position at which the
value of the viewpoint-to-geographical surface distance d2 becomes equal
to or larger than the minimum viewpoint-to-geographical surface distance
d2 min (S21). In a case where the value of the viewpoint-to-geographical
surface distance d2 is not smaller than the minimum
viewpoint-to-geographical surface distance d2 min (S20:N), the process of
S22 is performed.

[0187] The virtual space display unit 86 displays an image rendering a
scene viewed from the viewpoint 66 in the line of sight 68 in the virtual
space 64 on the screen of the monitor 26, based on the current position
of the viewpoint 66 and the current position of the pitch angle change
center point 80 (S22).

[0188] In the manner as described above, the position of the viewpoint 66
or the position of the pitch angle change center point 80 is moved
according to the operation performed by the user, and an image is
displayed on the screen of the monitor 26, the image depicting the
virtual space 64 based on the moved position of the viewpoint 66 and the
moved position of the pitch angle change center point 80.

[0189] It should be noted that the present invention is not limited to the
above-mentioned embodiment.

[0190] In the following, a modified embodiment of the present invention is
described with reference to a flow chart of FIG. 15. Description of the
matters shared with the above-mentioned embodiment is omitted.

[0191] In this embodiment, the viewpoint data storage unit 88 stores the
viewpoint data 134 which contains movement reference point position data
164, anterior direction data 166, altitude data 168, viewpoint height
data 170, and pitch angle data 172 (see FIG. 16). FIG. 16 illustrates an
example of the data structure of the viewpoint data 134 according to this
embodiment. FIG. 17 is an explanatory diagram illustrating an example of
a relation of a virtual Earth object with respect to the position of the
viewpoint and the line of sight according to this embodiment.

[0192] In this embodiment, the movement reference point position data 164
represents a position of a movement reference point 174, which is a point
of intersection where a straight line passing through the pitch angle
change center point 80 as being perpendicular to the reference surface
130 intersects with the reference surface 130, and is represented by, for
example, a three-dimensional coordinate value or data on a latitude and a
longitude.

[0193] The anterior direction data 166 represents an anterior direction
176 that is perpendicular to the normal of the reference surface 130 and
associated with an upward operation of the left operation stick to be
described later, and is represented by, for example, three-dimensional
vector data.

[0194] The altitude data 168 in this embodiment represents an altitude,
which is a distance from the movement reference point 174 to the pitch
angle change center point projected point 158 in the initial state.

[0195] The viewpoint height data 170 in this embodiment represents a
viewpoint height, which is a sum of a distance from the pitch angle
change center point 80 to the pitch angle change center point projected
point 158 and a distance from the pitch angle change center point 80 to
the viewpoint 66 in the initial state.

[0196] The pitch angle data 172 represents the pitch angle theta.

[0197] First, in this embodiment, the operation state acquisition unit 104
acquires the operation state (S51).

[0198] In a case where the posture data (X, Y) on the left operation stick
54 has been acquired (S52:Y), the pitch angle change center point moving
unit 112 moves, based on the posture data (X, Y) on the left operation
stick 54 acquired by the operation state acquisition unit 104, the
movement reference point 174 along the reference surface 130 to a
position on the coordinates in which the Y-axis direction and the X-axis
direction of the left operation stick 54 are associated with the anterior
direction 176 and with a direction of 90 degrees to the right with
respect to the anterior direction 176, respectively (S53). At this time,
the anterior direction data 166 may be changed according to the change in
the movement reference point position data 164. It should be noted that
the viewpoint height data 170 and the pitch angle data 172 are not
changed at this time. On the other hand, the altitude data 168 is
changed. Description is given later of how to change the altitude data
168.

[0199] In a case where the condition specified in S52 is not satisfied
(S52:N), the process of S54 is performed.

[0200] In a case where the operation state acquisition unit 104 has
acquired the posture data (X, Y) on the right operation stick 56 (S54:Y),
the pitch angle change unit 114 increases or decreases the pitch angle
theta and changes the anterior direction data 166 (that is, increases or
decreases the yaw angle phi), based on the posture data (X, Y) on the
right operation stick 56 acquired by the operation state acquisition unit
104 (S55). Specifically, for example, in a case where the value of Y
acquired by the operation state acquisition unit 104 is positive
(negative), the pitch angle change unit 114 decreases (increases) the
value of the pitch angle theta. Meanwhile, in a case where the value of X
acquired by the operation state acquisition unit 104 is positive
(negative), the anterior direction data 166 is changed so that the
anterior direction 176 is turned clockwise (counterclockwise) with
respect to the normal of the reference surface 130. In this manner, the
pitch angle theta and the yaw angle phi are changed. At this time, the
movement reference point position data 164 and the viewpoint height data
170 are not changed. On the other hand, the altitude data 168 is changed.
Description is given later of how to change the altitude data 168.

[0201] In a case where the condition specified in S54 is not satisfied
(S54:N), the process of S56 is performed.

[0202] In a case where the operation state acquisition unit 104 has
acquired a digital value that indicates a depressing force applied to the
second left button 52L or to the second right button 52R and is equal to
or larger than a given value (S56:Y), the viewpoint height data 170 is
changed (S57). Specifically, for example, in a case where the operation
state acquisition unit 104 has acquired a digital value that indicates a
depressing force applied to the second left button 52L and is equal to or
larger than a given value, the viewpoint moving unit 110 moves the
viewpoint 66 in a direction away from the pitch angle change center point
80. In a case where the operation state acquisition unit 104 has acquired
a digital value that indicates a depressing force applied to the second
right button 52R and is equal to or larger than a given value, the
viewpoint moving unit 110 moves the viewpoint 66 in a direction of
approaching the pitch angle change center point 80. The anterior
direction data 166, the movement reference point position data 164, and
the pitch angle data 172 are not changed at this time. On the other hand,
the altitude data 168 is changed. Description is given later of how to
change the altitude data 168.

[0203] In a case where the condition specified in S56 is not satisfied
(S56:N), the process of S58 is performed.

[0205] Specifically, for example, the first geographical surface distance
D1 and the second geographical surface distance D2 are measured. The
first geographical surface distance D1 is a distance between the pitch
angle change center point projected point 158 and the reference surface
130, and the second geographical surface distance D2 is a distance
between the viewpoint projected point 160 and the reference surface 130.
Here, a viewpoint reference point 178 is a point of intersection where a
straight line passing through the viewpoint projected point 160 as being
perpendicular to the reference surface 130 intersects with the reference
surface 130. Here, the pitch angle change center point position
modification unit 122 may obtain, by using the data on the latitude and
longitude of the viewpoint reference point 178, the latitude and
longitude of the movement reference point 174 from an altitude database
in which the latitude and longitude are associated with the altitude, and
may calculate the first geographical surface distance D1 based on data
representing the latitude and longitude of the movement reference point
174, while calculating the second geographical surface distance D2 based
on data on the latitude and longitude of the viewpoint reference point
178.

[0206] The pitch angle change center point position modification unit 122
changes the altitude data 168. Specifically, for example, when a
difference between the value of the altitude represented by the altitude
data 168 and the value of the first geographical surface distance D1 and
a difference between the value of the altitude represented by the
altitude data 168 and the value of the second geographical surface
distance D2 both fall out of a predetermined range (for example, 0.1
times as large as the value of viewpoint height), the altitude data 168
is updated. At this time, the predetermined range may preferably set to
be smaller than a viewpoint height internal division rate (for example,
0.2) to be described later so that the viewpoint 66 does not run into the
geographical surface 132.

[0207] Here, for example, in a case where a value obtained by subtracting
a value that is 0.1 times as large as the value of the viewpoint height
from a smaller one of the value of the first geographical surface
distance D1 and the value of the second geographical surface distance D2
is smaller than the value of the altitude, the pitch angle change center
point position modification unit 122 changes the value of the altitude to
the value obtained by subtracting the value that is 0.1 times as large as
the value of the viewpoint height from the smaller one of the value of
the first geographical surface distance D1 and the value of the second
geographical surface distance D2. On the other hand, in a case where the
value obtained by adding the value that is 0.1 times as large as the
value of the viewpoint height to a larger one of the value of the first
geographical surface distance D1 and the value of the second geographical
surface distance D2 is larger than the value of the altitude, the pitch
angle change center point position modification unit 122 changes the
value of the altitude to the value obtained by adding the value that is
0.1 times as large as the value of the viewpoint height to the larger one
of the value of the first geographical surface distance D1 and the value
of the second geographical surface distance D2. In this manner, the value
of the altitude falls within a range between the value obtained by
subtracting the value that is 0.1 times as large as the value of the
viewpoint height from the smaller one of the value of the first
geographical surface distance D1 and the value of the second geographical
surface distance D2 and the value obtained by adding the value that is
0.1 times as large as the value of the viewpoint height to the larger one
of the value of the first geographical surface distance D1 and the value
of the second geographical surface distance D2.

[0208] Then, the pitch angle change center point moving unit 112 moves the
position of the pitch angle change center point 80, and the viewpoint
moving unit 110 moves the position of the viewpoint 66 (S59).
Specifically, the pitch angle change center point moving unit 112 changes
the pitch angle change center point 80 to a point separated from the
movement reference point 174 in a direction perpendicular to the
reference surface 130, by a distance obtained by adding the value of the
altitude to a value obtained by multiplying the viewpoint height by the
viewpoint height internal division rate (for example, 0.2) as a given
rate. Then, the viewpoint moving unit 110 moves the position of the
viewpoint 66 about the pitch angle change center point 80 in a direction
that forms the pitch angle theta with respect to a direction
perpendicular to the reference surface 130 in a direction opposite to the
anterior direction 176, to a point separated from the pitch angle change
center point 80 by a distance represented by a value obtained by
multiplying the viewpoint height by a ratio (for example, 0.8) remaining
after the viewpoint height internal division rate is subtracted from 1.

[0209] The virtual space display unit 86 displays an image rendering a
scene viewed from the viewpoint 66 in the line of sight 68 in the virtual
space 64 on the screen of the monitor 26, based on the current position
of the viewpoint 66 and the current position of the pitch angle change
center point 80 (S60).

[0210] It should be noted that the present invention is not limited to the
above-mentioned embodiment, either.

[0211] For example, in the above-mentioned embodiment, a single virtual
object is disposed inside the virtual space 64. However, a plurality of
virtual objects may be disposed inside the virtual space 64.