|
Claims  |
|
|
What is claimed is:
1. In a computer having a video display and a storage, a method of hazing a
plurality of polygons, comprising the steps of:
selecting one of the polygons from the storage;
calculating a haze value as:
haze value=(z*kval)/dimval
where
z is the distance between a camera position and the selected polygon,
kval is a constant, and
dimval is the distance for full hazing;
calculating a shade value as the dot product of a sun vector and the normal
to the polygonal plane;
indexing a dither table with the haze and shade values for dither color
offsets;
adding a base color to the dither color offsets for dither colors;
determining a dither pattern of dither colors based on the position of the
selected polygon; and
drawing the selected polygon on the video display using the dither pattern.
2. The method of claim 1, wherein the constant (kval) is selected based
upon a rate at which colors change in a particular hazing condition.
3. The method of claim 1, wherein the step of determining the dither
pattern comprises the steps of:
selecting a first dither pattern if the selected polygon begins on an even
scan line of the video display; and
selecting a second dither pattern if the selected polygon begins on an odd
scan line of the video display.
4. The method of claim 1, further including the step of comparing the
polygon distance (z) to the hazing distance (dimval), wherein the shade
value is calculated if the polygon distance (z) is less than the hazing
distance (dimval).
5. A computerized method of modifying a base color of a polygon in a
computer accessing a storage and a visual display to indicate a hazing
condition, the method comprising the steps of:
selecting a polygon from the storage of the computer;
selecting a first distance representing a distance for full hazing;
calculating a second distance representing a distance between an observer
and the polygon;
calculating a haze value from the first and second distances;
determining a shade value for the selected polygon based upon the position
of the polygon in the video display and the relative position of at least
one light source;
indexing a lookup table, stored in the computer, based upon the haze value
and the shade value to obtain at least one color offset;
adding the at least one color offset to the base color of the polygon to
determine dither colors for the polygon; and
drawing the selected polygon on the video display using the dither colors.
6. The method of claim 5, wherein the step of calculating the haze value
comprises multiplying the second distance by a constant and then dividing
the result by the first distance.
7. The method of claim 6, wherein the constant is selected based upon a
rate at which colors change in said hazing condition.
8. The method of claim 5, wherein the at least one light source comprises
two light sources.
9. The method of claim 8, wherein the step of determining the shade value
comprises:
calculating a first dot product of a vector of the first light source and a
normal to the polygonal plane;
calculating a second dot product of a vector of the second light source and
the normal to the polygonal plane;
summing components of the first and second dot products; and
adding a translation factor to the summed components to produce a range of
positive values representative of intensity.
10. The method of claim 5, additionally comprising the step of determining
a dither pattern based on the position of the polygon in the video
display, and wherein the drawing step is based upon the dither colors and
the dither pattern.
11. A method of coloring a polygon in a computer having a visual display
comprising the steps of:
storing a plurality of color palettes in a memory of the computer;
selecting an atmospheric condition;
selecting one of the color palettes indicative of the atmosphere condition,
wherein each color in the palette is associated with a different shade and
haze value;
calculating a haze value for the polygon;
determining a shade value for the polygon;
indexing a dither table based upon the haze and shade values so as to
provide dither color offsets;
determining dither colors for the polygon based on a base color and the
dither color offsets;
selecting a dither pattern based upon the position of the selected polygon
on the visual display;
modifying the user perceived color of the selected polygon in response to
the selected dither colors and dither pattern; and
displaying the modified polygon on the display device.
12. The method of claim 11, further comprising the steps of: selecting a
hazing distance (dimval) which is the distance that an observer must be
from the selected polygon before color of the polygon is fully affected by
the atmospheric condition; and
calculating a polygon distance (z) which is the distance between an
observer and a selected point on the polygon.
13. The method of claim 12, wherein the haze value is calculated based upon
the polygon distance (z)and hazing distance (dimval).
14. The method of claim 12, further including the step of comparing the
polygon distance (z) to the hazing distance (dimval), wherein the shade
value is calculated if the polygon distance (z) is less than the hazing
distance (dimval).
15. The method of claim 11, wherein the shade value is determined based
upon the dot product of a light source vector and a normal to the plane of
the polygon.
16. The method of claim 11, wherein the step of selecting the dither
pattern comprises the step of:
selecting a first dither pattern if the polygon begins on an even scan line
of the visual display; and
selecting a second dither pattern if the polygon begins on an odd scan line
of the visual display.
17. A method of coloring a polygon in a user-interactive system comprising
the steps of:
selecting a simulated universe in response to a user input, wherein the
simulated universe comprises a plurality of polygons, a type of haze and a
thickness of haze;
selecting a dimming distance value (dimval) and a color change velocity
value (kval) corresponding to the thickness of haze and the type of haze
positioned between an observer and one of the polygons;
selecting a color palette for the polygon wherein each color of the palette
is associated with a unique set of shade and haze values;
storing the color palette in a memory;
selecting characteristics of a plurality of light sources in the simulated
universe;
calculating the distance (z) between the observer and a selected point on
the polygon;
calculating a haze value based upon the dimming distance value (dimval) and
distance (z);
comparing the distance (z) to the dimming distance (dimval);
determining a shade value representative of the relationship between the
characteristics of the light sources and a normal to the polygonal plane
if the distance (z) is less than the dimming distance value (dimval);
producing an index in response to the shade and haze values;
selecting first and second color offsets by addressing the memory according
to the index and the color palette;
selecting a dither pattern based on a position of the polygon; and
displaying the polygon with a color determined by the selected color
offsets and dither pattern.
18. The method of claim 17, wherein the haze value is representative of a
percentage of full hazing, and wherein each color in the palette is
selected to represent a polygon color modified by a different shade and
haze percentage.
19. The method of claim 17, wherein the presenting step is performed on a
visual display having a plurality of scan lines, and wherein the step of
selecting the dither pattern comprises selecting a first dither pattern if
the polygon beings on an even scan line and selecting a second dither
pattern if the polygon begins on an odd scan line.
20. In a computer having a memory and a visual display, a method of
coloring a polygon comprising the steps of:
selecting a color palette for the polygon wherein each color of the palette
is associated with a different shade and haze value;
storing the color palette in the memory;
selecting a plurality of light sources in a computer generated universe;
producing a haze value based on a dimming distance value (dimval) and a
polygon distance (z) between an observer and the polygon;
producing a shade value representative of the relationship between the
light sources and a normal to the polygonal plane;
selecting color offsets into the color palette based upon the haze and
shade values;
selecting a dither pattern based on a position of the polygon on the visual
display;
modifying the color of the polygon in response to the selected color
offsets and dither pattern; and
drawing the polygon on the visual display.
21. The method of claim 20, wherein the step of calculating the haze value
comprises multiplying the polygon distance (z) by a constant and then
dividing the result by the dimming distance (dimval).
22. The method of claim 21, wherein the constant is selected based upon a
rate at which colors change in said hazing condition.
23. The method of claim 21, wherein the step of determining the shade value
comprises:
calculating a fist dot product of a vector of a first one of the plurality
of light sources and the normal to the polygonal plane;
calculating a second dot product of a vector of a second one of the
plurality of light sources and the normal to the polygonal plane;
summing components of the first and second dot products; and
adding a translation factor to the summed components to produce a range of
positive values representative of intensity.
24. A system for coloring a polygon to indicate a hazing condition,
comprising:
a computer accessing a storage;
an input device connected to the computer capable of selecting a polygon;
a color palette for the polygon wherein each color of the palette is
associated with a different shade and haze value, said palette stored in
the storage;
a plurality of simulated light sources generated by the computer;
a haze value determined by a dimming distance value (dimval) and a polygon
distance (z) between an observer and the polygon;
a shade value representative of the relationship between the light sources
and a normal to the polygonal plane;
a selector of color offsets into the color palette using the haze and shade
values;
a visual display connected to the computer;
a dither pattern selected by the computer; and
a modifier to change the color of the polygon in response to the selected
color offset and dither pattern;
wherein said modified polygon is drawn on the visual display. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
MICROFICHE APPENDIX
A microfiche appendix containing computer source code is attached. The
microfiche appendix comprises one (1) sheet of microfiche having 29
frames, including one title frame.
The microfiche appendix contains material which is subject to copyright
protection. The copyright owner has no objection to the reproduction of
such material, as it appears in the files of the Patent and Trademark
Office, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention generally relates to automated training and, more
particularly, is concerned with vehicle simulators.
2. Description of the Prior Art
A vehicle simulator can be defined as a system that simulates the operating
conditions of a vehicle in an environment. Where the vehicle simulated is
a car, the environment would typically include a road. The environment in
this case may also include weather conditions such as fog or snow. Besides
cars, examples of other types of vehicles that may be simulated include
airplanes, ships, submersibles and space vehicles.
Vehicle simulators provide the means to efficiently train operators. That
is, a simulator can be used where an operator has a need to safely learn
how to operate the particular vehicle being simulated. Rather than train
an operator on a real-world vehicle, the simulator is used to avoid
accidents. Clearly, experience garnered through making mistakes on a
simulator is invaluable when compared to the inherent risks of vehicle
damage, and moreover, operator injury, associated with making a driving
error in a real-life situation. As an example, in a police training
application, a student could learn the limits of a police cruiser or
guidelines for pursuit, and be tested in these areas without the
associated risks of real-life training.
In some sense, a simulator achieves a balance between testing the
operator's knowledge of the "rules of the road" and testing the operator's
use of a vehicle. Testing the operator's knowledge is typically and
conveniently accomplished through written and/or verbal examinations.
However, examinations are of limited usefulness for operator training. For
example, operator reflexes are not tested at all, and, moreover, such
examinations do not adequately address the skills necessary for real-time
decision-making.
Besides concerns for operator safety, the other alternative, actual vehicle
operation, has its pitfalls too. First, the cost of instructor time may be
prohibitive. Furthermore, the actual vehicle itself, such as for space or
undersea operation, may simply not be available. Lastly, there is always
the risk of an accident when a student is training on an actual vehicle
under realistic conditions. Although a certain amount of training may
occur in benign environments, for example, learning to drive a car in an
empty parking lot, there comes a time, early in the operator's training,
where driving in an unrealistic environment is no longer useful and
practical.
Vehicle simulators address the issue of presenting the operator with a
realistic training environment. The principal shortcoming of existing
training systems, however, is that they are not providing realistic
feedback for incremental learning. For example, in most known systems
there is no way to instantaneously gauge one's progress against a prior
use of the vehicle while it is in operation.
Video arcade games are another technology providing a certain degree of
user feedback. Arcade games are typically placed in public areas such as
arcade halls, theaters, airports and other such areas where the users can
occupy time and entertain themselves by playing the game. Arcade games
utilizing video displays have been around for some time now, beginning
with the simplistic game of bouncing a ball across a line with paddles
known as "Pong". However, with the passage of time, video arcade games
have become ever more sophisticated and realistic.
Since arcade games have housings which occupy a limited space, the computer
equipment of the game is subject to strict space constraints. In addition,
the user's interest must be captured and maintained by the simulator, thus
requiring that processing be accomplished in real-time. The competing
space and time goals thus make the task of injecting realism into the
games more difficult.
In many senses the arcade game called "Hard Drivin".TM.", manufactured and
distributed by Atari Games Corp. of Milpitas, Calif., represents the state
of the art in arcade game realism. The physical layout of the game
includes clutch, brake and gas pedals, a gearshift and a steering wheel.
The user, or driver, is provided feedback response from a video display
having a three-dimensional graphical representation of the driving
environment and from a speaker which generates realistic sounds of
driving. A digital processor, comprising a number of microprocessors and a
memory, is the interface between the user inputs and the feedback
response.
The training potential of a simulator or arcade game is maximized when the
student has user feedback. One form of feedback possible is a display of
various performance numbers on a video monitor of the simulator or game.
These performance numbers might be elapsed time for completing a track,
top speed, points, and so forth. However, this type of information does
not inform the student exactly what location(s) and what parameter(s) he
may need to improve. Additionally, graphical feedback attracts and holds
the student's attention better than a number or a series of numbers.
Therefore, a need exists for graphical feedback of performance data that
shows the student periodically how he compares to a standard set by an
instructor or where and what parameters he needs to improve to attain a
standard set by an instructor. A need also exists for realistic vehicle
simulators and arcade games to provide personalized feedback, wherein the
feedback may be personalized by either the operator/user or by an
instructor/champion.
The training potential of a simulator or arcade game is also improved when
the user controls or input devices feel and operate like those of a real
vehicle. If the input devices feel and work like the real thing, the
student should encounter minimal difficulties due to the input devices
when moving from a simulator to a real vehicle. For a car, truck or
similar vehicle, several controls are mounted on the steering column.
These controls frequently are a shift lever and a turn signal lever. The
turn signal lever is moved by the driver to activate a turn signal
indicator until the turn is substantially complete, at which time a
canceling mechanism deactives the turn signal indicator. The shift lever
has an indicator, which moves in response to a shift of gear by the
driver, that shows what gear is selected. Thus, a need exists for
simulator or arcade game input devices that feel and work like those in a
real vehicle.
Simulator training would be improved if accurate atmospheric conditions
could be reproduced by a vehicle simulator. Atmospheric conditions caused
by particles in the air or the position of the sun in the sky, for
example, will mute and distort the environmental colors perceived by a
driver. The change in coloration can be thought of as resulting from a
screen or grid of haze being overlaid on the image. Such a visual cue of
color change, henceforth termed hazing, would provide a greater degree of
realism in simulators, allowing users to test their driving abilities
under varying environmental conditions.
Night driving is another condition in which it is desirable to practice and
test driving abilities. As objects are illuminated by the headlights, they
become visible out of the darkness. Then, as the user approaches the
objects, they appear brighter and easier to perceive. A problem some
drivers may have is driving at a speed that doesn't allow safe stopping if
an object would be in the roadway beyond the illumination range of the
headlights. It would be desirable to safely experience such an effect on a
simulator and therefore know how to handle the situation in real-life.
Thus, a simulator which provides the capability to emulate time of day,
e.g., dawn, day, dusk, or night, and weather, e.g., fog or snow, would
give the user a chance to experience most any driving condition.
Hazing, or simulating non-optimal atmospheric conditions, is used in some
present military simulators to simulate flying in fog, or some other form
of haze. However, the known military simulators require expensive computer
hardware, including high resolution video displays, to reproduce these
effects.
Moreover, with infinite resolution on a video display, the simulation of
atmospheric conditions such as fog, smog, dusk, and the like, would be
perfect, i.e., fine droplets or granules could be interleaved with the
view. Alternatively, the human eye could be deceived into seeing higher
video resolutions than actually available by employing higher rates of
video frame update. Unfortunately, most present video systems have limited
resolution and slow rates of video update. In addition, the choice of
colors in video displays is often limited due to constraints on video
memory.
Due to the above-mentioned problems, users desiring realistic training
having visual cues which change colors according to atmospheric conditions
have either had to have access to expensive equipment or have had to
simply do without. A driving simulator having the capability to
approximate atmospheric conditions using many readily available and
reasonably priced video display systems would therefore be a great benefit
in training drivers.
SUMMARY OF THE INVENTION
The aforementioned needs are satisfied by the present invention which
includes a driver training system for a user of a simulated vehicle,
comprising a plurality of simulated input devices for controlling the
simulated vehicle, a video display for presenting the user with a view of
a simulated environment, modeling means responsive to the input devices
for determining position information of the simulated vehicle in the
simulated environment, means responsive to the position information for
displaying on the video display a present route of the simulated vehicle
through the simulated environment, and means responsive to at least one of
the simulated input devices for displaying on the video display a
plurality of states of the input device at selected times in the present
route.
In another aspect of the present invention there is a driver training
system for a user of a simulated vehicle, comprising a plurality of
simulated input devices for controlling the simulated vehicle, a video
display for presenting the user with a view of a simulated environment,
modeling means responsive to the input devices for determining position
information of the simulated vehicle in the simulated environment, means
responsive to the position information for displaying on the video display
a present route of the simulated vehicle through the simulated
environment, means for storing the present route and a plurality of states
of at least one input device in a memory, and means for replaying the
present route on the video display and moving the input device according
to the states stored in the memory.
In another aspect of the present invention, there is a computer having a
video display, a method of hazing a plurality of polygons, comprising the
steps of selecting one of the polygons, calculating a haze value as:
haze value=(z,kval)/dimval
where
z is the distance between the camera position and the polygon,
kval is a constant, and
dimval is the distance for full hazing,
calculating a shade value as the dot product of a sun vector and the normal
to the polygonal plane, indexing a dither table with the haze and shade
values for dither color offsets, adding a base color to the dither color
offsets for dither colors, determining a dither pattern of dither colors
based on the position of the selected polygon, and drawing the selected
polygon on the video display using the dither pattern.
In another aspect of the present invention, there is a turn signal assembly
for a steering wheel, comprising a lever, a frame, a retainer plate
rigidly connecting to one end of the lever and axially coupled to the
frame about a pivot point, a plunger mounted in a bore in the frame
wherein the plunger is biased, means in the assembly for selectively
engaging detents in the retainer plate, and a cancel pin connected to a
hub area, the hub area connected to the steering wheel so that the cancel
pin forces the plunger into the bore when the hub area is turned one
direction, and pushes against the released plunger when the hub area is
turned the other direction thereby forcing detent disengagement and
reengagement.
In yet another aspect of the present invention, there is a low frequency
sound generator, comprising a set of input devices, a computer for
receiving input signals from the input devices, a control process executed
by the computer for selectively converting the input signals into output
signals indicative of a simulated environment, a low pass filter for
filtering the output signals, an amplifier for amplifying the filtered
signals, a speaker for receiving the amplified signals and generating low
frequency sounds, and a housing having a bladder filled with air wherein
the speaker is secured to the housing so as to be in mechanical
communication with the air in the bladder.
These and other objects and features of the present invention will become
more fully apparent from the following description and appended claims
taken in conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of one presently preferred driver training system
of the present invention;
FIG. 2 is a user's view while maneuvering through a lane change course on a
steering track corresponding to a video screen display provided by the
driver training system of FIG. 1;
FIG. 3 is a top plan view of the lane change course shown in FIG. 2;
FIG. 4a is a diagram of a summary evaluation screen of an instructor's path
through the lane change course shown in FIG. 3;
FIG. 4b is a diagram of a summary evaluation screen of a student's path
superimposed upon the instructor's path through the lane change course
shown in FIG. 3;
FIG. 5 is a diagram of the user's view while in replay mode through the
lane change course shown in FIG. 3;
FIG. 6 is a `bird's-eye` view of a user's simulated vehicle while in replay
mode through the lane change course shown in FIG. 3;
FIG. 7 is a diagram of a main menu screen of the driver training system
shown in FIG. 1;
FIG. 8 is a diagram of a track menu screen of the driver training system
shown in FIG. 1;
FIG. 9 is a diagram of a vehicle menu screen of the driver training system
shown in FIG. 1;
FIG. 10 is a diagram of a weather menu screen of the driver training system
shown in FIG. 1;
FIG. 11 is a diagram of an instruction options menu screen of the driver
training system shown in FIG. 1;
FIG. 12 is a flow diagram of the "executive.sub.-- control" function which
forms a portion of the control process shown in FIG. 1;
FIG. 13 is a flow diagram of the "init.sub.-- precord" function used by the
"executive.sub.-- control" function shown in FIG. 12;
FIG. 14 is a flow diagram of the "cones" function used by the
"executive.sub.-- control" function shown in FIG. 12;
FIG. 15 is a flow diagram of the "summary.sub.-- evaluation" function used
by the "cones" function of FIG. 14;
FIG. 16 is a flow diagram of the "replay.sub.-- ideal.sub.-- path" function
used by the "cones" function of FIG. 14;
FIG. 17 is a flow diagram of the "replay.sub.-- student.sub.-- top.sub.--
view" function used by the "cones" function shown in FIG. 14;
FIG. 18 is a flow diagram of the "save.sub.-- ideal.sub.-- path" function
used by the "cones" function shown in FIG. 14;
FIG. 19 is a flow diagram of the "replay.sub.-- speed" function used by the
"cones" function shown in FIG. 14;
FIGS. 20a, 20b and 20c are diagrams of screen displays showing the
approximation of atmospheric conditions aspect of the driver training
system shown in FIG. 1;
FIG. 21 is a flow diagram of the approximation of atmospheric conditions or
"atmospheric.sub.-- effects" function used by the "display.sub.-- objects"
function of the "executive.sub.-- control" function shown in FIG. 12;
FIG. 22 is a diagram of a set of mechanical input devices and an instrument
panel for the simulated vehicle of the driver training system shown in
FIG. 1;
FIG. 23 is a diagram of a turn signal assembly for the turn signal lever
shown in FIG. 22; and
FIG. 24 is a side elevational view of a seat and low frequency speaker
assembly for the driver training system shown in FIG. 1.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Reference is now made to the drawings wherein like numerals refer to like
parts throughout.
FIG. 1 shows one presently preferred embodiment of a driver training system
100 of the present invention. The driver training system 100 is operated
by a user or student 102 (shown schematically), who desires to improve
driving performance. It should be understood that the driver training
system 100 as hereinafter described is applicable to any type of vehicle
that is operated by a human. The present invention includes a personalized
feedback response that is easily generalized to driver training systems
for all kinds of simulated vehicles and types of driving.
The more specific embodiment of the driver training system 100 as presented
in the following figures and description is presented as a vehicle
simulator for police training. At times, the user 102 will be an
instructor, rather than the student, when it is desired to establish an
`ideal` path, as will be described hereinbelow.
In FIG. 1, the user 102 preferably sits in a booth or housing (not shown)
such as the one described in the assignee's U.S. patent entitled "Rear
Entry Booth and Adjustable Seat Apparatus for a Sit-Down Arcade Video
Game", U.S. Pat. No. 4,960,117. In that way, distractions are minimized
and the user 102 can concentrate on self-improvement. The sitting position
also better simulates the actual conditions associated with driving a
vehicle.
In the driver training system 100, the user 102 moves a turn signal lever
104, and depresses a brake pedal 106 and gas pedal 108 in the customary
manner. In addition, an automatic transmission shifter 110 is manipulated
by the user 102 to select a reverse gear or one of a plurality of forward
gears. A steering wheel 112 is turned by the user 102 so as to guide the
simulated vehicle in the desired direction of travel.
The mechanical inputs provided by the user 102 to the input devices 104,
106, 108, 110 and 112 are translated by transducers into electrical
signals which are fed into a computer 114. In the presently preferred
embodiment, the computer 114 includes a general purpose microprocessor
such as a Motorola 68000 (not shown) or another member of the Motorola
680x0 microprocessor family. One function of the 68000 microprocessor is
palette manipulation. In addition to the 68000 microprocessor, the
computer 114 preferably includes a model processor (DSP), such as an AT&T
| | |