Rendering a three-dimensional model using a dither pattern

Information

  • Patent Grant
  • 6980206
  • Patent Number
    6,980,206
  • Date Filed
    Thursday, June 7, 2001
    23 years ago
  • Date Issued
    Tuesday, December 27, 2005
    19 years ago
Abstract
Rendering a three-dimensional model includes obtaining a characteristic of the three-dimensional model, determining a three-dimensional dither pattern based on the characteristic, and rendering the three-dimensional model using the three-dimensional dither pattern. Determining the three-dimensional dither pattern may include selecting a number of points to make up the dither pattern and a location of the points on the three-dimensional model.
Description
TECHNICAL FIELD

This invention relates to rendering a three-dimensional (3D) model using a dither pattern.


BACKGROUND

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.





DESCRIPTION OF THE DRAWINGS


FIG. 1 is perspective view of a 3D environment.



FIG. 2 is a perspective view of volumetric data in an object from the 3D environment.



FIG. 3 is a flowchart for rendering a 3D model using one or more dither patterns.



FIG. 4 is a block diagram of computer hardware on which the process of FIG. 3 may be implemented.





DESCRIPTION


FIG. 1 shows a 3D environment 10 rendered using 3D data. 3D environment 10 includes a cloud 12. Referring to FIG. 2, the 3D data for cloud 12 is 3D volumetric data. That is, the data defines which pixels are “on” or “off” in the 3D space occupied by cloud 12. In this way, the 3D volumetric data approximates the density of the cloud, i.e., more pixels “on” means higher density, fewer pixels “on” means lower density.


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 FIG. 3, a process 20 is shown for rendering a 3D model, such as cloud 12, using 3D dither patterns. Process 20 receives (22) 3D data for 3D model 12. The data may be retrieved from a memory, downloaded from a network, or obtained from any available source. The following describes rendering cloud 12 using 3D dither patterns; however, it is noted that process 20 may be used to render any object in 3D environment 10 using dither patterns (provided, of course, that the object has associated volumetric data).


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.



FIG. 4 shows a computer 42 on which process 20 may be implemented. Computer 42 includes a processor 44, a memory 46, and a storage medium 48 (see view 50). Storage medium 48 stores 3D data 52 for 3D environment 10 and machine-executable instructions 54 that are executed by processor 44 out of memory 46 to perform process 20 on 3D data 52.


Although a personal computer is shown in FIG. 4, process 20 is not limited to use with the hardware and software of FIG. 4. It may find applicability in any computing or processing environment. Process 20 may be implemented in hardware, software, or a combination of the two. Process 20 may be implemented in computer programs executing on programmable computers or other machines that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage components), at least one input device, and one or more output devices. Program code may be applied to data entered using an input device (e.g., a mouse or keyboard) to perform process 20 and to generate output information.


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.

Claims
  • 1. A method of rendering a three-dimensional model comprised of volumetric three-dimensional data, comprising: obtaining a characteristic of a region of the three-dimensional model; determining a three-dimensional dither pattern for the region based on the characteristic, the three-dimensional dither pattern comprising points in a volumetric region, the points being assigned values to make the dither pattern correspond to the characteristic; and rendering a dithered version of the three-dimensional model using the three-dimensional dither pattern, wherein the dithered version of the three-dimensional model comprises plural three-dimensional dither patterns, and wherein each of the plural three-dimensional dither patterns corresponds to a non-overlapping region of the three-dimensional model.
  • 2. The method of claim 1, wherein determining comprises selecting a number of points to make up the three-dimensional dither pattern and a location of the points on the three-dimensional model.
  • 3. The method of claim 1, wherein characteristics are obtained for different regions of the three-dimensional model, the plural three-dimensional dither patterns are determined for the different regions based on characteristics for the different regions, and the three-dimensional model is rendered using the plural three-dimensional dither patterns.
  • 4. The method of claim 1, wherein the three-dimensional dither pattern comprises data specifying pixels to illuminate when rendering the three-dimensional model.
  • 5. The method of claim 4, wherein the pixels define individual points in the three-dimensional dither pattern.
  • 6. The method of claim 1, wherein the characteristic comprises a density of the three-dimensional model.
  • 7. The method of claim 6, wherein the density is obtained for a three-dimensional region of the three-dimensional model by averaging densities of sub-regions within the three-dimensional region.
  • 8. The method of claim 1, wherein the characteristic comprises one of a color of the three-dimensional model, a field strength in the three-dimensional model, a temperature in the three-dimensional model, and a pollution concentration in the three-dimensional model.
  • 9. The method of claim 1, wherein determining the three-dimensional dither pattern comprises selecting the three-dimensional dither pattern from a number of three-dimensional dither patterns stored in memory.
  • 10. An article comprising a machine-readable medium that stores executable instructions for rendering a three-dimensional model comprised of volumetric three-dimensional data, the instructions causing a machine to: obtain a characteristic of a region of the three-dimensional model; determine a three-dimensional dither pattern based for the region on the characteristic, the three-dimensional dither pattern comprising points in a volumetric region, the points being assigned values to make the dither pattern correspond to the characteristic; and render a dithered version of the three-dimensional model using the three-dimensional dither pattern, wherein the dithered version of the three-dimensional model comprises plural three-dimensional dither patterns, and wherein each of the plural three-dimensional dither patterns corresponds to a non-overlapping region of the three-dimensional model.
  • 11. The article of claim 10, wherein determining comprises selecting a number of points to make up the three-dimensional dither pattern and a location of the points on the three-dimensional model.
  • 12. The article of claim 10, wherein characteristics are obtained for different regions of the three-dimensional model, the plural three-dimensional dither patterns are determined for the different regions based on characteristics for the different regions, and the three-dimensional model is rendered using the plural three-dimensional dither patterns.
  • 13. The article of claim 10, wherein the three-dimensional dither pattern comprises data specifying pixels to illuminate when rendering the three-dimensional model.
  • 14. The article of claim 13, wherein the pixels define individual points in the three-dimensional dither pattern.
  • 15. The article of claim 10, wherein the characteristic comprises a density of the three-dimensional model.
  • 16. The article of claim 15, wherein the density is obtained for a three-dimensional region of the three-dimensional model by averaging densities of sub-regions within the three-dimensional region.
  • 17. The article of claim 10, wherein the characteristic comprises one of a color of the three-dimensional model, a field strength in the three-dimensional model, a temperature in the three-dimensional model, and a pollution concentration in the three-dimensional model.
  • 18. The article of claim 10, wherein determining the three-dimensional dither pattern comprises selecting the three-dimensional dither pattern from a number of three-dimensional dither patterns stored in memory.
  • 19. An apparatus for rendering a three-dimensional model comprised of three-dimensional volumetric data, comprising: a memory that-stores executable instructions; and a processor that executes the instructions to: obtain a characteristic of a region of the three-dimensional model; determine a three-dimensional dither pattern for the region based on the characteristic, the three-dimensional dither pattern comprising points in a volumetric region, the points being assigned values to make the dither pattern correspond to the characteristic; and render a dithered version of the three-dimensional model using the three-dimensional dither pattern, wherein the dithered version of the three-dimensional model comprises plural three-dimensional dither patterns, and wherein each of the plural three-dimensional dither patterns corresponds to a non-overlapping region of the three-dimensional model.
  • 20. The apparatus of claim 19, wherein determining comprises selecting a number of points to make up the three-dimensional dither pattern and a location of the points on the three-dimensional model.
  • 21. The apparatus of claim 19, wherein characteristics are obtained for different regions of the three-dimensional model, the plural three-dimensional dither patterns are determined for the different regions based on the characteristics for the different regions, and the three-dimensional model is rendered using the plural three-dimensional dither patterns.
  • 22. The apparatus of claim 19, wherein the three-dimensional dither pattern comprises data specifying pixels to illuminate when rendering the three-dimensional model.
  • 23. The apparatus of claim 22, wherein the pixels define individual points in the three-dimensional dither pattern.
  • 24. The apparatus of claim 19, wherein the characteristic comprises a density of the three-dimensional model.
  • 25. The apparatus of claim 24, wherein the density is obtained for a three-dimensional region of the three-dimensional model by averaging densities of sub-regions within the three-dimensional region.
  • 26. The apparatus of claim 19, wherein the characteristic comprises one of a color of the three-dimensional model, a field strength in the three-dimensional model, a temperature in the three-dimensional model, and a pollution concentration in the three-dimensional model.
  • 27. The apparatus of claim 19, wherein determining the three-dimensional dither pattern comprises, selecting the three-dimensional dither pattern from a number of three-dimensional dither patterns stored in memory.
US Referenced Citations (58)
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
Related Publications (1)
Number Date Country
20020186215 A1 Dec 2002 US