This invention relates to rendering a three-dimensional (3D) model using a dither pattern.
A 3D model may be defined using 3D volumetric data. 3D volumetric data defines characteristics of models or “objects” in a 3D environment. For example, a 3D environment may include a cloud. 3D volumetric data may be used to define the density of regions of that cloud using dots or other elements.
Although density is described here, it is noted that volumetric data is not limited to defining an object's density. Volumetric data may be used to define any characteristic of a 3D model. For example, volumetric data may be used to define color in the three-dimensional model, field strength (e.g., electrical or magnetic) in a 3D model, temperature in the 3D model, and/or pollution concentration in the 3D model.
Referring to
Process 20 selects (24) a 3D region of cloud 12. In this embodiment, process 20 selects a cubic region; however, any type of 3D region may be used. Irregularly shaped regions may be used, particularly for regions near the boundary of cloud 12. Process 20 obtains (26) a characteristic of the selected region. As noted, the characteristic, in this case density, is defined by volumetric data associated with the selected region. Process 20 obtains (26) the characteristic of the selected region as follows.
Process 20 selects (28) a sub-region of the selected region. The sub-region may be of any shape (e.g., a cube) and any size (e.g., from a single pixel to multiple pixels). Process 20 obtains (30) the desired characteristic, in this case density, of the sub-region. The density is obtained from volumetric data for the sub-region. Process 20 determines (32) if there are any sub-regions for which the density has not been obtained. If so, process 20 repeats blocks 28, 30 and 32 until the density has been obtained for all sub-regions of the region selected in 24. Once the density has been obtained for all sub-regions, process 20 averages (34) the values of the densities. The resulting average is assigned to be the density of the selected region.
Process 20 determines (36) a dither pattern for the selected region based on the density of the selected region. In this embodiment, the dither pattern is defined by data specifying pixels to illuminate in 3D space when rendering cloud 12. The pixels define individual points (or dots) in the dither pattern. The number and locations of the points in the selected region are based on the density of the region. That is, the higher the density, the greater the number of points that are included in the selected region. The points may be distributed randomly throughout the selected region to approximate the density, or they may be distributed evenly. The distribution may determined at the time of rendering, i.e., “on-the-fly”, or it may be pre-set. Alternatively, the dither pattern may be selected from a set of pre-stored dither patterns that correspond to various densities.
Once process 20 determines (36) the dither pattern for the selected region, it is determined (38) if there are any regions remaining in cloud 12. That is, process 20 determines (38) if dither patterns have been selected for all regions of cloud 12. If not, process 20 repeats blocks 24, 26, 36 and 38 until dither patterns have been selected for all regions.
Once the dither patterns have been selected, process 20 outputs the dither patterns to a 3D graphics rendering process. The output may be a list of points that comprise the dithered approximation of the volumetric data for cloud 12. The rendering process, which may or may not be part of process 20, renders (40) the 3D object, i.e., the cloud, using the dither patterns. The resulting rendering is a 3D object that approximates its density with concentrations of dots.
Although a personal computer is shown in
Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language.
Each computer program may be stored on a storage medium/article (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform process 20. Process 20 may also be implemented as a machine-readable storage medium, configured with a computer program, where, upon execution, instructions in the computer program cause a machine to operate in accordance with process 20.
The invention is not limited to the specific embodiments described above. Other embodiments not described herein are also within the scope of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
3739082 | Lippel | Jun 1973 | A |
4460924 | Lippel | Jul 1984 | A |
4600919 | Stern | Jul 1986 | A |
4747052 | Hishinuma et al. | May 1988 | A |
4835712 | Drebin et al. | May 1989 | A |
4855934 | Robinson | Aug 1989 | A |
4901064 | Deering | Feb 1990 | A |
5124914 | Grangeat | Jun 1992 | A |
5163126 | Einkauf et al. | Nov 1992 | A |
5371778 | Yanof et al. | Dec 1994 | A |
5573402 | Gray | Nov 1996 | A |
5611030 | Stokes | Mar 1997 | A |
5731819 | Gagne et al. | Mar 1998 | A |
5757321 | Billyard | May 1998 | A |
5786822 | Sakaibara | Jul 1998 | A |
5805782 | Foran | Sep 1998 | A |
5809219 | Pearce et al. | Sep 1998 | A |
5812141 | Kamen et al. | Sep 1998 | A |
5836813 | Miyata et al. | Nov 1998 | A |
5838813 | Kancler et al. | Nov 1998 | A |
5847712 | Salesin et al. | Dec 1998 | A |
5894308 | Isaacs | Apr 1999 | A |
5926401 | Montag et al. | Jul 1999 | A |
5929860 | Hoppe | Jul 1999 | A |
5933148 | Oka et al. | Aug 1999 | A |
5949969 | Suzuoki et al. | Sep 1999 | A |
5966133 | Hoppe | Oct 1999 | A |
5966134 | Arias | Oct 1999 | A |
5974423 | Margolin | Oct 1999 | A |
6054999 | Strandberg | Apr 2000 | A |
6057859 | Handelman et al. | May 2000 | A |
6078331 | Pulli et al. | Jun 2000 | A |
6115050 | Landau et al. | Sep 2000 | A |
6175655 | George et al. | Jan 2001 | B1 |
6191787 | Lu et al. | Feb 2001 | B1 |
6191796 | Tarr | Feb 2001 | B1 |
6198486 | Junkins et al. | Mar 2001 | B1 |
6201549 | Bronskill | Mar 2001 | B1 |
6208347 | Migdal et al. | Mar 2001 | B1 |
6219070 | Baker et al. | Apr 2001 | B1 |
6239808 | Kirk et al. | May 2001 | B1 |
6252608 | Snyder et al. | Jun 2001 | B1 |
6262737 | Li et al. | Jul 2001 | B1 |
6262739 | Migdal et al. | Jul 2001 | B1 |
6292192 | Moreton | Sep 2001 | B1 |
6317125 | Persson | Nov 2001 | B1 |
6337880 | Cornog et al. | Jan 2002 | B1 |
6388670 | Naka et al. | May 2002 | B2 |
6405071 | Analoui | Jun 2002 | B1 |
6437782 | Pieragostini et al. | Aug 2002 | B1 |
6478680 | Yoshioka et al. | Nov 2002 | B1 |
6559848 | O'Rourke | May 2003 | B2 |
6593924 | Lake et al. | Jul 2003 | B1 |
6593927 | Horowitz et al. | Jul 2003 | B2 |
6608627 | Marshall et al. | Aug 2003 | B1 |
6608628 | Ross et al. | Aug 2003 | B1 |
20010026278 | Arai et al. | Oct 2001 | A1 |
20020101421 | Pallister | Aug 2002 | A1 |
Number | Date | Country | |
---|---|---|---|
20020186215 A1 | Dec 2002 | US |