Multi-layer atmospheric fading in real-time computer image generator.
Abstract
The effect of multi-layer atmospheric scattering on the visibility F of each point P on a visible surface of each polygon in a display scene, in a computer image generation (CIG) system, is provided by determining the effective average reciprocal half-fading distance between viewpoint and the viewed point, knowing the altitudes at which each of the different scattering layers start and accounting for any transitional slopes therebetween. The total reduced visibility of that viewed point P is a function of the average reciprocal half-fading distance for that point and of the total range between the viewed point P and the viewpoint VP.

Term
Term ended
Projected expiry passed 1 September 2012, 14.1 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
20 claims: 2 independent, 18 dependent
- 1A method for determining the fading effect of scattering through a plurality n of different atmospheric layers on the visibility F P from a viewing point VP of each viewed point P on a visible surface of each polygon in a display scene in a computer image generation (CIG) system, comprising the steps of:(a) determining an inverse range, responsive to a viewscreen location (I P ,J P ) of a viewray from viewing point VP to viewed point P;(b) determining an altitude Alt P of the viewed point P;(c) determining, responsive to the viewed point altitude and to an altitude Alt VP of the viewing point VP and to an altitude Alt L i , for 1≦i≦n, at which each i-th one of the scattering layers begins, an effective cumulative layer half-fading reciprocal distance (1/Df eff_cumm );and (d) determining the total diminished visibility F P of point P from viewing point VP through all of the intervening scattering layers, responsive to selected ones of the inverse range, viewed point altitude, viewing point altitude and effective cumulative layer half-fading reciprocal distance data.
- 11Apparatus for determining the fading effect of scattering through a plurality n of different atmospheric layers on the visibility F p from a viewing point VP of each viewed point P on a visible surface of each polygon in a display scene in a computer image generation (CIG) system, comprising:first means for determining an inverse range, responsive to a viewscreen location (I p ,J p ) of a viewray from viewing point VP to viewed point P;second means for determining an altitude Alt P of the viewed point P;third means, responsive to the viewed point altitude and to an altitude Alt VP of the viewing point VP and to an altitude Alt L i , for 1≦i≦n, at which each i-th one of the scattering layers begins, for determining an effective cumulative layer half-fading reciprocal distance (1/Df eff_cumm );and fourth means for determining the total diminished visibility F p of point P from viewing point VP through all of the intervening scattering layers, responsive to selected ones of the inverse range, viewed point altitude, viewing point altitude and effective cumulative layer half-fading reciprocal distance data.
Independent claims2
24 paragraphs, as filed
0001The present invention relates to computer-controlled image generation and, more particularly, to novel methods and apparatus for generating the effects caused by light passing through a plurality of different atmospheric layers in the process of illuminating each point on the surface of the at least one polygon making up a scene to be displayed.
<u>Background of Invention</u>
0002Fading, as the term is used in the Computer Image Generation (CIG) arts, refers to the modification of the intrinsic feature color chromicity and intensity of an object towards a common haze or fading color, as a function of both the range between the object and observer and the density of the scatterers (e.g. fog droplets, dust particles and the like). The physical basis of this phenomena is illustrated, for a relatively simple case, in Figure 1; the viewer 10, located at some viewpoint VP, is attempting to view a desired point 11p at the location P on a surface 11a from which illuminating light is reflected from an object 11. Light rays 12a emanate from a source 12, i.e. the sun, and then perhaps pass through a haze layer 14 (e.g. a layer of suspended moisture droplets) on the way to the object 11 being viewed. A portion 14s1 of the light 12a incident on, and passing through, layer 14 is scattered by the layer and the light rays 12b actually illuminating object 11 are thus modified by the haze to have different chromicity and attenuated intensity. With the moisture particles acting as miniature prisms, the scattered light 14s1 is refracted to create a multi-color effect the sum of which typically appears near-white. If the viewer 10 is so located as to cause the light rays 12c reflected from the viewed object 11 to pass through the layer 14 (or some other scattering layer), some of rays 12c are themselves scattered, as scattered light 14s2, so that the light rays 12d actually reaching the viewpoint are even further modified in amplitude; the attenuation may, dependent upon the nature of the scattering layer or layers, be modifed in chromicity as well as amplitude. Some of the scattered light 14s1/14s2 may in chromicity as well as amplitude. Some of the scattered light 14s1/14s2 may be returned in the direction of viewer 10, thereby creating an additional color source for the eye.
0003Since a portion of the light from the source is attenuated by the time it is received by the viewer, the direct contribution of the diffuse illumination of the object 11 will be diminished. Mimicking this effect is a critical capability for CIG systems, and especially so when the CIG is used as part of a training system (e.g. a flight simulator and the like). Most critical is the ability to provide a realistic model of the effects of a multi-layer atmospheric model, with the effects of each layer calculated at the pixel level. This capability will enable a system to be capable of training in true ground fog situations in which individual objects are accurately modeled, even though the objects exist partially in the haze and partly in a clearer layer. This capability is of particular importance in rotor-wing aircraft training and armor applications, as the majority of such training is at or near ground level, where fog greatly impacts the visibility of the environment. Accordingly, it is highly desirable to provide a multi-layer scattering capability to real-time CIG systems
<u>Brief Summary of the Invention</u>
0004In accordance with the invention, the effect of multi-layer atmospheric scattering on the visibility F of each point P on a visible surface of each of at least one polygon in a display scene is provided in computer image generation (CIG) systems, by determining the effective average reciprocal half-fading distance between viewpoint and the viewed point, responsive to the altitudes at which each of the different scattering layers start and accounting for any transitional slopes therebetween. The total reduced visibility of that viewed point P is a function of the average reciprocal half-fading distance for that point and of the total range R between the viewed point P and the viewpoint VP.
0005In a presently preferred method, the average reciprocal half-fading distance is determined by use of layer altitudes, so that the determined reciprocal distance is usable with any viewing of any viewed point P at its same altitude Alt<sub>P</sub> from any viewpoint VP at its same altitude Alt<sub>VP</sub>. One form of apparatus for carrying out these determinations and calculations is described.
0006Accordingly, it is an object of the present invention to provide novel methods and apparatus for simulating, in computer image generation systems, the effects of multi-layer atmospheric scattering.
0007This and other objects of the present invention will become apparent to those skilled in the art upon reading the following detailed description of the invention, when considered in conjunction with the associated drawings.
<u>Brief Description of the Drawings</u>
0008<ul id="ul0001" list-style="none"><li>Figure 1 is a schematic view of an illumination source, an object to be viewed and a viewer, with an intervening atmospheric layer, and illustrates the form of the problem considered by the present invention;</li><li>Figure 2 is a schematic view of an observer and an observed point on an object, with a plurality of intervening atmospheric layers, and useful in the definition and appreciation of the method of the present invention; and</li><li>Figure 3 is a schematic block diagram of apparatus for providing multilayer scattering effects in a CIG</li></ul>
<u>Detailed Description of a Presently Preferred Embodiment</u>
0009Refering now to Figure 2, the viewer 10′ is at viewpoint VP and is observing light rays 12′c reflected from a particular point P at a viewed location 11p′ on a surface 11a′ of an object 11′. Point P is at a range distance R from viewpoint VP. By way of illustration only, the surface point 11p′ is within a first atmospheric layer 14a, which scatters some rays 14s′ of the light reflected by the object surface 11a′. Layer 14a is overlaid by a second atmospheric layer 14b, which is overlaid by another layer and so forth, with viewer 10′ being within a final-considered layer 14n. It will be seen that there may be other scatter layers above viewpoint VP and below viewed point 11p′, but, because reflected light rays 12′c do not traverse these layers, such layers have no scatter effect on the light arriving at the viewer 10′. It will also be understood that each layer 14i, where 1≦i≦n, can be substantially clear (i.e with an attenuation of substantially zero) or may have any desired amount of attenuation α<sub>i</sub>, as long as that attenuation is different from the attenuation, in any function of amplitude and chromicity, of either adjacent layer 14(i-1) or 14(i+1).
0010The final color C<sub>f</sub> of a feature (e.g. a viewed point 11p′) seen through a single haze layer, relative to the visibility F of that feature, is given by:<maths id="math0001" num="(1)"><math display="block"><mrow><mtext>final_color = attenuated_feature_color + haze_color_due_to_scattering</mtext></mrow></math><img file="EP0531084A2_D0001.tif" /></maths> or<maths id="math0002" num="(2)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>f</mtext></mrow></msub><msub><mrow><mtext> = F*C</mtext></mrow><mrow><mtext>feature</mtext></mrow></msub><msub><mrow><mtext> + (1 - F)*C</mtext></mrow><mrow><mtext>haze</mtext></mrow></msub></mrow></math><img file="EP0531084A2_D0002.tif" /></maths> where C<sub>feature</sub> is the color of the feature being processed, and C<sub>haze</sub> is the color of the haze. The visibility is typically generated by<maths id="math0003" num="(3)"><math display="block"><mrow><msup><mrow><mtext>F = e</mtext></mrow><mrow><mtext>-kR</mtext></mrow></msup></mrow></math><img file="EP0531084A2_D0003.tif" /></maths> where k is a function of the fog density and R is the range from the viewpoint to the object. A convenient way to specify fog density k is to use the range at which the visibility F is equal to 0.5. This distance is labeled the half-fading distant Df. Equation (3) can then be written<maths id="math0004" num="(4)"><math display="block"><mrow><msup><mrow><mtext>F = e</mtext></mrow><mrow><mtext>-KR/Df</mtext></mrow></msup></mrow></math><img file="EP0531084A2_D0004.tif" /></maths> where the constant k is replaced by a constant value K evaluated for the half-fading distance. Using the definition of Df, one can solve for K; thus, when range R =Df, F is equal to 0.5 and, therefore,<maths id="math0005" num="(5)"><math display="block"><mrow><msup><mrow><mtext>0.5 = e</mtext></mrow><mrow><mtext>-K</mtext></mrow></msup></mrow></math><img file="EP0531084A2_D0005.tif" /></maths> or<maths id="math0006" num="(6)"><math display="block"><mrow><mtext>K = ln(2) = 0.693</mtext></mrow></math><img file="EP0531084A2_D0006.tif" /></maths> Substituting for K in equation (4) yields<maths id="math0007" num="(7)"><math display="block"><mrow><msup><mrow><mtext>F = e</mtext></mrow><mrow><mtext>-0.693F/Df</mtext></mrow></msup><msup><mrow><mtext> = e</mtext></mrow><mrow><mtext>-KA</mtext></mrow></msup></mrow></math><img file="EP0531084A2_D0007.tif" /></maths> where A is now defined as (R/Df). The true range R is calculated to the feature being faded for each element the feature covers.
0011The implementation of fading in previous image generation systems used a single Df value for all surface polygons in a set artificially defined to include a number of somewhat similar polygons, e.g. the polygons defining a certain piece of terrain or those polygons belonging to a selected object model. This previous use of a single Df value limited the ability of a CIG system to accurately produce a layered atmospheric model for the simple reason that a class of features had to share a single Df value, even when the many elements of that class existed in more than one layer. A simple example of this drawback can be seen by reference to Figure 2. Let a first layer 14a be of a dense ground fog, with a short half-fading distance value Df₀, and cover the lower half of the object 11′ (a mountain), while the upper half of the mountain exist in a clear sky layer 14b, with a very long half-fading distance Df₁. A cloud layer 14i, with an intermediate half-fading distance Df<sub>i</sub>, is also shown running through the clear sky above the mountain. In the prior art, only one Df value was available for the entire mountain. In the prior art, only one Df value was available for the entire mountain, and a similar fading value had, of necessity, to be derived for the entire mountain, so that the distinct layer information was not used and was effectively lost, thus detracting from the realism of the computed image.
0012In accordance with our invention, the fading conditions indicated in Figure 2 can be properly utilized in a CIG system by computation of an individual effective half-fading distance Df<sub>eff</sub> value for each separate processed point 11p′ on the displayed (mountain) object 11′, for all visible objects on the display screen 16; the screen has a center 16c disposed along the central viewing sightline 161, with that screen point 16s lying along the sightline 12′c to a particular point having screen coordinates I<sub>P</sub>,J<sub>P</sub> relative to a chosen screen location (e.g. the upper left comer of the screen). The individual Df<sub>eff</sub> value is caused to be a function of the various layer densities Df<sub>i</sub> as the viewray 12′c passes through the various fog, haze and the like scatterer layers 14i to reach the polygon surface point 11p′ then being processed.
0013The overall visibility value F<sub>P</sub> for the presently-considered point 11p′ is the product of the visibilities F₀, F₁, F₂,..., F<sub>i</sub>,..., F<sub>n</sub> of each layer of different density fog, haze and the like, encountered by the viewray 12′c between viewpoint VP and viewed point P:<maths id="math0008" num="(8)"><math display="block"><mrow><msub><mrow><mtext>F</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msub><mrow><mtext> = F₀ * F₁ * F₂ * ... * F</mtext></mrow><mrow><mtext>i</mtext></mrow></msub><msub><mrow><mtext> * ... F</mtext></mrow><mrow><mtext>n</mtext></mrow></msub></mrow></math><img file="EP0531084A2_D0008.tif" /></maths> Using Equation (8) for an example having a viewray passing through only four layers (with respective visibilities F₀, F₁, F₂ and F₃), the visibility F<sub>P</sub>′ along the viewray from the viewpoint VP to the point P is<maths id="math0009" num="(9)"><math display="block"><mrow><msub><mrow><mtext>F</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><mtext>′ = F₀ * F₁ * F₂ * F₃</mtext></mrow></math><img file="EP0531084A2_D0009.tif" /></maths> Expanding Equation (9) yields<maths id="math0010" num="(10)"><math display="block"><mrow><msub><mrow><mtext>F</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msup><mrow><mtext>′ =(e</mtext></mrow><mrow><mtext>KR0/Df0</mtext></mrow></msup><msup><mrow><mtext>)(e</mtext></mrow><mrow><mtext>-KR1/Df1</mtext></mrow></msup><msup><mrow><mtext>)(e</mtext></mrow><mrow><mtext>-kR2/Df2</mtext></mrow></msup><msup><mrow><mtext>)(e</mtext></mrow><mrow><mtext>-KR3/Df3</mtext></mrow></msup><mtext>)</mtext></mrow></math><img file="EP0531084A2_D0010.tif" /></maths> Since the sum of the ranges through each layer along the viewray equals the range from VP to P (i.e. Rp = R0 + R1 + R2 + R3), there exists a single effective Df value, denoted Df<sub>eff</sub>, which yields<maths id="math0011" num="(11)"><math display="block"><mrow><msup><mrow><mtext>e</mtext></mrow><mrow><mtext>-K(Rp/Dfeff)</mtext></mrow></msup><msup><mrow><mtext>=e</mtext></mrow><mrow><mtext>-K((R0/Df0)+(R1/Df1)+(R2/Df2)+(R3/Df3))</mtext></mrow></msup></mrow></math><img file="EP0531084A2_D0011.tif" /></maths> and<maths id="math0012" num="(12)"><math display="block"><mrow><msub><mrow><mtext>Rp(1/Df</mtext></mrow><mrow><mtext>eff</mtext></mrow></msub><mtext>)=R₀(1/Df₀)+R₁(1/Df₁)+R₂(1/Df₂)+R₃(1/Df₃)</mtext></mrow></math><img file="EP0531084A2_D0012.tif" /></maths> And therefore,<maths id="math0013" num="(13)"><math display="block"><mrow><msub><mrow><mtext>1/Df</mtext></mrow><mrow><mtext>eff</mtext></mrow></msub><mtext>=[R₀(1/Df₀)+R₁(1/Df₁)+R₂(1/Df₂)+R₃(1/Df₃)]/Rp</mtext></mrow></math><img file="EP0531084A2_D0013.tif" /></maths>
0014Using simple ratios, it should be apparent that 1/Df<sub>eff</sub> can be computed using altitude (Alt) instead of range (R); specifically, we want to use Alt<sub>VP-P</sub> as a substitute for R<sub>VP-P</sub>. This will greatly simplify the remaining calculations since the vertical distance through a given layer will remain constant while the angle of the viewray can change. In order to calculate the effective reciprocal half-fading distance (1/Df<sub>eff</sub>), the altitude Alt<sub>P</sub> of the point being processed must be determined. A simple approach is to generate an equation which describes altitude Alt<sub>P</sub> as a function of the range (R) and the screen position (I<sub>p</sub>,J<sub>p</sub>) of the point 16s through which passes the viewray 12′c for that particular point 11p′ on the viewed polygon surface 11a′. This altitude Vp can be expressed as<maths id="math0014" num="(14)"><math display="block"><mrow><msub><mrow><mtext>Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msub><mrow><mtext> + Alt</mtext></mrow><mrow><mtext>VP</mtext></mrow></msub><mtext> + Z</mtext><msub><mrow><mover accent="true"><mrow><mtext>N</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>f</mtext></mrow></msub><msub><mrow><mover accent="true"><mrow><mtext>V</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>j</mtext></mrow></msub></mrow></math><img file="EP0531084A2_D0014.tif" /></maths> where <maths id="math0015"><math display="inline"><mrow><mover accent="true"><mrow><mtext>N</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0531084A2_D0015.tif" /></maths><sub>f</sub> is the unit gravity vector, <maths id="math0016"><math display="inline"><mrow><mover accent="true"><mrow><mtext>V</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0531084A2_D0016.tif" /></maths><sub>j</sub> is a vector through the pixel I<sub>p</sub>,J<sub>p</sub>), and Z is a first function of the screen position, which, for the I/J screen designation system, is<maths id="math0017" num="(15)"><math display="block"><mrow><msub><mrow><mtext>Z = C₄ + C₅I</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext> + C₆J</mtext></mrow><mrow><mtext>p</mtext></mrow></msub></mrow></math><img file="EP0531084A2_D0017.tif" /></maths> where C₄, C₅ and C₆ are computed, in well-known manner, for the specific polygon. This produces Alt<sub>P</sub> as a function of the (I<sub>p</sub>,J<sub>p</sub>) coordinates, or<maths id="math0018" num="(16)"><math display="block"><mrow><msub><mrow><mtext>Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msub><mrow><mtext> = Alt</mtext></mrow><mrow><mtext>VP</mtext></mrow></msub><msub><mrow><mtext> + ((C₁+C₂I</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>+C₃J</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>)/(C₄+C₅I</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>+C₆J</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><mtext>))</mtext></mrow></math><img file="EP0531084A2_D0018.tif" /></maths> where C₁, C₂ and C₃ are also computed for the specific polygon. Equation (16) can be combined to obtain another (I,J) function, in the form<maths id="math0019" num="(17)"><math display="block"><mrow><msub><mrow><mtext>Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msub><mrow><mtext> + ((C₁′+C₂′I</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>+C₃′J</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>)/(C₄+C₅I</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>+C₆J</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><mtext>)).</mtext></mrow></math><img file="EP0531084A2_D0019.tif" /></maths>
0015Now, having found Alt<sub>P</sub>=f(I<sub>p</sub>,J<sub>p</sub>), the 1/Df<sub>eff</sub> for the change of altitude must be found. The atmospheric layer information can be defined in terms of density per unit altitude. A cumulative density can be calculated by averaging the unit densities across the change in altitude from the viewpoint altitude to the altitude of the point P being faded. Many options exist for calculating the cumulative fog density. One particular implementation is to generate this value on-the-fly for each point 11p′ being processed. This can be accomplished by storing the start altitude Alt L<sub>i</sub> for each atmospheric layer, the initial unit fog density for that layer, and a slope (m<sub>i</sub>) describing the rate of change of the density of the i-th layer per unit altitude. This provides the ability to create uniform density areas and transition layers between such layers. A cumulative density from altitude = 0 is stored for the starting altitude of each layer. Additional data is stored to describe the altitude and cumulative density at the viewpoint.
0016For each point 11p′ on each polygon 11a′ processed in the scene, a fading processor can be used to calculate information which is then utilized as the input to a series of comparators for determination of those atmospheric layers which are totally below the particular point 11p′ and also of that layer within which the point is contained. If the point is within a uniform density layer (non-transition), the processor calculates the cumulative density to the point as<maths id="math0020" num="(18)"><math display="block"><mrow><msub><mrow><mtext>(1/Df</mtext></mrow><mrow><mtext>eff cumm p</mtext></mrow></msub><msub><mrow><mtext>)=(1/Df</mtext></mrow><mrow><mtext>cumm 1</mtext></mrow></msub><msub><mrow><mtext>)+(Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><mtext>-Alt₁)*(1/Df₁)</mtext></mrow></math><img file="EP0531084A2_D0020.tif" /></maths> where 1 is the current layer designation. If the point falls within a transitional-density layer, the cumulative density to the point is<maths id="math0021" num="(19)"><math display="block"><mrow><msub><mrow><mtext>(1/Df</mtext></mrow><mrow><mtext>eff cumm p</mtext></mrow></msub><msub><mrow><mtext>)=(1/Df</mtext></mrow><mrow><mtext>cumm 1</mtext></mrow></msub><msub><mrow><mtext>)+(Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msub><mrow><mtext>-Alt₁)*(1/Df₁)+(Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><msub><mrow><mtext>-Alt₁)²*(1/2)(1/Df</mtext></mrow><mrow><mtext>m</mtext></mrow></msub><mtext>)</mtext></mrow></math><img file="EP0531084A2_D0021.tif" /></maths> where m is the slope m<sup>i</sup> of the particular i-th layer. This result, which allows the cumulative density from ground zero to the viewed point to be processed, can be generalized as (1/Df<sub>eff_cumm_p</sub>) = (1/Df<sub>cumm_1</sub>) + (Alt<sub>P</sub>-Alt₁) * (1/Df₁) + S * (Alt<sub>P</sub>-Alt₁)² * (1/2)(1/Df<sub>m</sub>), where S is respectively 0 or 1 for respective non-transitional and transitional layer densities. The change in altitude from the viewpoint to the point being processed is simply<maths id="math0022" num="(20)"><math display="block"><mrow><msub><mrow><mtext>Alt</mtext></mrow><mrow><mtext>VP-P</mtext></mrow></msub><msub><mrow><mtext> = |Alt</mtext></mrow><mrow><mtext>VP</mtext></mrow></msub><msub><mrow><mtext> - Alt</mtext></mrow><mrow><mtext>P</mtext></mrow></msub><mtext>|.</mtext></mrow></math><img file="EP0531084A2_D0022.tif" /></maths> The cumulative density across the altitude change is<maths id="math0023" num="(21)"><math display="block"><mrow><msub><mrow><mtext>(1/Df</mtext></mrow><mrow><mtext>eff cumm</mtext></mrow></msub><msub><mrow><mtext>)=|(1/Df</mtext></mrow><mrow><mtext>eff cumm VP</mtext></mrow></msub><msub><mrow><mtext>)-(1/Df</mtext></mrow><mrow><mtext>eff cumm P</mtext></mrow></msub><mtext>)|</mtext></mrow></math><img file="EP0531084A2_D0023.tif" /></maths> The effective average density, or 1/Df<sub>eff</sub>, is found by<maths id="math0024" num="(22)"><math display="block"><mrow><msub><mrow><mtext>(1/Df</mtext></mrow><mrow><mtext>eff</mtext></mrow></msub><msub><mrow><mtext>)=(1/Df</mtext></mrow><mrow><mtext>eff cumm</mtext></mrow></msub><msub><mrow><mtext>)/(Alt</mtext></mrow><mrow><mtext>VP-P</mtext></mrow></msub><mtext>)</mtext></mrow></math><img file="EP0531084A2_D0024.tif" /></maths> One special case exists in which the change in altitude is 0. For this case the 1/Df<sub>eff</sub> is the 1/Df at the viewpoint altitude. The fading for the point can now be found using Equation (7); the effective average half-fading reciprocal distance 1/Df<sub>eff</sub> is multiplied by range R, with the result being used as the input to an exponential function generator. This function can be generated as a memory look up table (TLU) or by a piecewise approximation.
0017Referring now to Figure 3, one presently preferred embodiment of a fading processor 20 is shown. The I<sub>P</sub> and J<sub>P</sub> pixel location data for the screen point 16s, corresponding to the viewray 12′c from the viewpoint VP to the particular polygon surface point 11p′ for which fading data is then being calculated, are respectively input to the respective first inputs 22a/24a and second inputs 22b/24b of respective first and second function generators 22/24, which respectively provide the (C₄+C₅I<sub>p</sub>(+C₆J<sub>p</sub>) data and the (C₁+C₂I<sub>p</sub>+C₃J<sub>p</sub>)data at the respective outputs 22c/24c. Output 22c is coupled to a first A input 26a of a first divisor means 26, which has a second B input receiving the data from output 24c. The resulting A/B data at an output 26c is thus the viewed point altitude Alt<sub>P</sub> as calculated using Equation ( 17). This altitude data is provided to a second B input 28b of a subtractor means 28, having a first A input 28a receiving the viewpoint altitude Alt VP data; the output 28c has A-B data, which is the desired Alt<sub>VP-P</sub> information. An absolute-value-taking means 30 processes this data and applies |Alt<sub>VP-P</sub>| to a second B input 32b of a second division means 32, having a first A input 32a receiving (1/D<sub>eff-cumm</sub>) data. The A/B data at output 32c is the required effective average reciprocal half-fading distance (1/Df<sub>eff</sub>) data.
0018Each of a plurality N of data comparators 34a-34n has a first A input receiving the Alt<sub>VP</sub> data and a second B input individually receiving the data defining the lower altitude Alt Li of the associated i-th layer; note that an altitude Alt L₀ is not used, as the lower altitude of the zero-th layer is defined as zero altitude. The associated comparator 34i output is normally at a first logic level if A≦B, i.e. the actual altitude is not greater than the lower layer altitude, and is only enabled to a second logic level if A>B, i.e. if the viewpoint altitude is above the layer lower altitude. The comparator 34i outputs will be successively enabled, starting with the output of the first comparator 34a, if the viewpoint has an altitude greater than the lower first layer altitude (i.e. is above the bottom, or zero-th, layer), and successively increasing as the viewpoint altitude increases and enters, or passes above, a next-higher layer. Thus, if the viewpoint VP is in the i-th layer, all of the outputs of the first, second,...,(i-1)-st and i-th comparator outputs are enabled to the second logic level, while the (i-1)-st through n-th outputs remain at the first selected logic level. The number of sequential levels is encoded, as a datum of value I, by the encoder means 36 operating on the I enabled comparator output signals. The I datum is coupled to an address input 38a of a memory means 38 for use in addressing a set of data stored at a corresponding location in the memory, and also as an input-select control signal at a control input 40x of an N-input multiplexing (MUX) means 40. The individual layer lower altitude data Alt Li for each i-th layer, is coupled to the associated 40i input of MUX means 40, so that data setting the altitude Alt L of the present layer in which the viewpoint VP is located, is provided at the MUX means output 40y. This data is coupled to a second B input of another subtractor means 42, having a first A data input 42a receiving the Alt P data from the first divider means output 26c. The signal at the (A-B) output 42c contains Alt(P-L) data, and is provided to a first input 44a of a first multiplier means 44 and to both inputs 46a/46b of a second multiplier, or squarer, means 46. The second input 44b of the first multiplier receives 1/Df₁ data from a first output 38b taken from the addressed location of memory 38, and provides product data from its output 46c to a first input 48a of a third multiplier means 48. Simultaneously, a third multiplier second input 48b receives 1/Df<sub>m</sub> slope data from a second memory means output 38c. The third multiplier output 48c provides data to a first input 50a of a first adder means 50, having a second input 50b receiving the Alt(P-L)² data from the first multiplier output 44c. The first adder output 50c provides data to a first input 52a of a second adder means, receiving 1/D<sub>cumm-L</sub> data from a third memory output 38d. The second adder output 52c provides the 1/Df<sub>eff_cumm</sub> data needed at the divider first input 32a.
0019The 1/Df<sub>eff</sub> data at output 32c is coupled to a first input 54a of a final divider means 54, having its second B input receiving inverse range (1/R) data, which is the (C₄+ C₅I+C₆J) data from the first function generator output 22c. The data at the final divider means output 54c is the R/Df quotient, which is then used as the A input data to an exponentiator means 56 and is operated upon, responsive to a fixed K value set into means 56, to generate the e<sup>-KA</sup> output data forming the F visibility data output from circuit 20. Circuit 20 is thus separately used for each visible point P on each surface of each polygon viewable in the total display, to determine the scattering visibility of that point.
0020While one specific implementation of apparatus for carrying out our novel multi-layer fading method has been described in some detail herein, those skilled in the art will now understand that many variations and modifications can be made whilst remaining within the spirit of our invention.
27 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US5502505A | Cited by | United States of America | Search report |
| GB2276792B | Cited by | United Kingdom | Search report |
| US7937685B2 | Cited by | United States of America | Applicant |
| GB2293079A | Cited by | United Kingdom | Search report |
| GB2293079B | Cited by | United Kingdom | Search report |
| GB2276792A | Cited by | United Kingdom | Search report |
| WO9427240A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO9118359A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
11 members in 6 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 754494 | United States of America | – | |
| 75449491 | United States of America | A | |
| 75449491 | United States of America | A | |
| 754494 | – | – | – |
| US19910754494 | – | – | – |
Members11
| Document | Office | Kind | |
|---|---|---|---|
| IL102836A0 | Israel | A0 | |
| EP0531084A2This record | European Patent Office (EPO) | A2 | |
| JPH05205032A | Japan | A | |
| EP0531084A3 | European Patent Office (EPO) | A3 | |
| TW225595B | Taiwan Province of China | B | |
| US5357579A | United States of America | A | |
| IL102836A | Israel | A | |
| EP0531084B1 | European Patent Office (EPO) | B1 | |
| JP3191180B2 | Japan | B2 | |
| DE69231922D1 | Germany | D1 | |
| DE69231922T2 | Germany | T2 |
30 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Party data changed (patent owner data changed or rights of a patent transferred)RAP2 | RAP2 | EP | |
| European patent in force as of 2002-01-01IF02 | IF02 | GB | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| Information provided on ipc code assigned before grant7G 06T 15/50 ARIC1 | RIC1 | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0531084
- Publication, DOCDB
- 0531084
- Publication, EPODOC
- EP0531084
- Application
- 92307912
- Application, DOCDB
- 92307912
- Application, EPODOC
- EP19920307912
Titles3
- German
- Mehrschichtige atmosphärische Überblendung in Echtzeit-Rechnerbildgenerator
- English
- Multi-layer atmospheric fading in real-time computer image generator
- French
- Atténuation atmosphérique multi-couche dans un générateur d'image par calculateur en temps réel
Classification
- CPC, 1
- G06T15/50
- IPC, 1
- G06T15 50
Designated states1
- Contracting states, 1
- Italy