![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() |
![]() |
( 16 of 30 ) |
United States Patent | 6,580,430 |
Hollis , et al. | June 17, 2003 |
A graphics system including a custom graphics and audio processor produces exciting 2D and 3D graphics and surround sound. The system includes a graphics and audio processor including a 3D graphics pipeline and an audio digital signal processor. Improved fog simulation is provided by enabling backwards exponential and backwards exponential squared fog density functions to be used in the fog calculation. Improved exponential and exponential squared fog density functions are also provided which provide the ability to program a fog start value. A range adjustment function is used to adjust fog based on the X position of the pixels being rendered, thereby preventing range error as the line of sight moves away from the Z axis. An exemplary Fog Calculation Unit, as well as exemplary fog control functions and fog related registers, are also disclosed.
Inventors: | Hollis; Martin (Cambridge, GB); Law; Patrick Y. (Milpitas, CA) |
Assignee: | Nintendo Co., Ltd. (Kyoto, JP) |
Appl. No.: | 726225 |
Filed: | November 28, 2000 |
Current U.S. Class: | 345/473; 345/419; 345/426 |
Intern'l Class: | G06T 015/70 |
Field of Search: | 345/419,420,426,473 |
4388620 | Jun., 1983 | Sherman. | |
4425559 | Jan., 1984 | Sherman. | |
4463380 | Jul., 1984 | Hooks, Jr. | |
4570233 | Feb., 1986 | Yan et al. | |
4658247 | Apr., 1987 | Gharachorloo. | |
4725831 | Feb., 1988 | Coleman. | |
4829295 | May., 1989 | Hiroyuki. | |
4862392 | Aug., 1989 | Steiner. | |
4866637 | Sep., 1989 | Gonzalez-Lopez et al. | |
4901064 | Feb., 1990 | Deering. | |
4914729 | Apr., 1990 | Omori et al. | |
4945500 | Jul., 1990 | Deering. | |
5136664 | Aug., 1992 | Bersack et al. | |
5170468 | Dec., 1992 | Shah et al. | |
5268996 | Dec., 1993 | Steiner et al. | |
5357579 | Oct., 1994 | Buchner et al. | |
5363475 | Nov., 1994 | Baker et al. | |
5392385 | Feb., 1995 | Evangelisti et al. | |
5392393 | Feb., 1995 | Deering. | |
5412796 | May., 1995 | Olive. | |
5415549 | May., 1995 | Logg. | |
5421028 | May., 1995 | Swanson. | |
5432895 | Jul., 1995 | Myers. | |
5457775 | Oct., 1995 | Johnson, Jr. et al. | |
5504917 | Apr., 1996 | Austin. | |
5535374 | Jul., 1996 | Olive. | |
5573402 | Nov., 1996 | Gray. | |
5594854 | Jan., 1997 | Baldwin et al. | |
5608424 | Mar., 1997 | Takahashi et al. | |
5616031 | Apr., 1997 | Logg. | |
5687357 | Nov., 1997 | Priem. | |
5701444 | Dec., 1997 | Baldwin. | |
5721947 | Feb., 1998 | Priem et al. | |
5724561 | Mar., 1998 | Tarolli et al. | |
5727192 | Mar., 1998 | Baldwin. | |
5758182 | May., 1998 | Rosenthal et al. | |
5764243 | Jun., 1998 | Baldwin. | |
5768626 | Jun., 1998 | Munson et al. | |
5768629 | Jun., 1998 | Wise et al. | |
5774133 | Jun., 1998 | Neave et al. | |
5777629 | Jul., 1998 | Baldwin. | |
5798770 | Aug., 1998 | Baldwin. | |
5801706 | Sep., 1998 | Fujita et al. | |
5801716 | Sep., 1998 | Silverbrook. | |
5805868 | Sep., 1998 | Murphy. | |
5815166 | Sep., 1998 | Baldwin. | |
5821949 | Oct., 1998 | Deering. | |
5874969 | Feb., 1999 | Storm et al. | |
5917496 | Jun., 1999 | Fujita et al. | |
5920326 | Jul., 1999 | Rentschler et al. | |
5940086 | Aug., 1999 | Rentschler et al. | |
5949424 | Sep., 1999 | Cabral et al. | |
5949440 | Sep., 1999 | Krech, Jr. et al. | |
5969726 | Oct., 1999 | Rentschler et al. | |
5977984 | Nov., 1999 | Omori. | |
5990903 | Nov., 1999 | Donovan. | |
5999196 | Dec., 1999 | Storm et al. | |
6002409 | Dec., 1999 | Harkin. | |
6005582 | Dec., 1999 | Gabriel et al. | |
6023738 | Feb., 2000 | Priem et al. | |
6025853 | Feb., 2000 | Baldwin. | |
6028611 | Feb., 2000 | Anderson et al. | |
6037949 | Mar., 2000 | DeRose et al. | |
6057852 | May., 2000 | Krech, Jr. | |
6064392 | May., 2000 | Rohner. | |
6092124 | Jul., 2000 | Priem et al. | |
6173367 | Jan., 2001 | Aleksic et al. | |
6181352 | Jan., 2001 | Kirk et al. | |
6198488 | Mar., 2001 | Lindholm et al. | |
6226012 | May., 2001 | Priem et al. | |
6268861 | Jul., 2001 | Sanz-Pastor et al. | 345/426. |
6342892 | Jan., 2002 | Van Hook et al. | 345/503. |
6437781 | Aug., 2002 | Tucker et al. | 345/426. |
Foreign Patent Documents | |||
2070934 | Dec., 1993 | CA. | |
1 074 945 | Feb., 2001 | EP. | |
1 075 146 | Feb., 2001 | EP. | |
1 081 649 | Mar., 2001 | EP. | |
11053580 | Feb., 1999 | JP. | |
11076614 | Mar., 1999 | JP. | |
11161819 | Jun., 1999 | JP. | |
11203500 | Jul., 1999 | JP. | |
11226257 | Aug., 1999 | JP. | |
11259671 | Sep., 1999 | JP. | |
11259678 | Sep., 1999 | JP. | |
2000-66985 | Mar., 2000 | JP. | |
2000-92390 | Mar., 2000 | JP. | |
2000-132704 | May., 2000 | JP. | |
2000-132706 | May., 2000 | JP. | |
2000-149053 | May., 2000 | JP. | |
2000-156875 | Jun., 2000 | JP. | |
2000-182077 | Jun., 2000 | JP. | |
2000-207582 | Jul., 2000 | JP. | |
2000-215325 | Aug., 2000 | JP. | |
WO 94/10641 | May., 1994 | WO. |
Photograph of Sony PlayStation II System. Photograph of Sega Dreamcast System. Photograph of Nintendo 64 System. Whitepaper: 3D Graphics Demystified, Nov. 11, 1999, www.nvidia.com. Whitepaper: "Z Buffering, Interpolation and More W-Buffering", Doug Rogers, Jan. 31, 2000, www.nvidia.com. Whitepaper: Using GL_NV_vertex_array and GL_NV_fence, posted Aug. 1, 2000, www.nvidia.com. Whitepaper: Anisotropic Texture Filtering in OpenGL, posted Jul. 17, 2000, www.nvidia.com. Whitepaper: Mapping Texels to Pixels in D3D, posted Apr. 5, 2000, www.nvidia.com. Whitepaper: Guard Band Clipping, posted Jan. 31, 2000, www.nvidia.com. Whitepaper: Cube Environment Mapping, posted Jan. 14, 2000, www.nvidia.com. Whitepaper: Color Key in D3D, posted Jan. 11, 2000, www.nvidia.com. Whitepaper: Vertex Blending Under DX7 for the GeForce 256, Jan. 5, 2000, www.nvidia.com. Whitepaper: Optimizing Direct3D for the GeForce 256, Jan. 3, 2000, www.nvidia.com. Whitepaper: Dot Product Texture Blending, Dec. 3, 1999, www.nvidia.com. Whitepaper: Technical Brief: AGP 4X with Fast Writes, Nov. 10, 1999, www.nvidia.com. Technical Brief: Transform and Lighting, Nov. 10, 1999, www.nvidia.com. Technical Brief: What's New With Microsoft DirectX7, posted Nov. 10, 1999, www.nvidia.com. Mitchell et al., "Multitexturing in DirectX6", Game Developer, Sep. 1998, www.gdmag.com. VisionTek, "GeForce2 GS Graphics Processing Unit", .COPYRGT.2000 www.visiontek.com. Jim Bushnell et al. "Advanced Multitexture Effects With Direct3D and OpenGL", Pyramid Peak Design & ATI Research, Inc., GameDevelopers Conferencem .COPYRGT.1999. Sony PlayStation II Instruction Manual, Sony Computer Entertainment Inc., .COPYRGT.2000. Stand and Be Judged, Next Generation, May 2000. PlayStation II: Hardware Heaven or Hell?, Next Generation, Jan. 2000. Chris Charla, "Play Station II: The Latest News", Next Generation, Sep. 1999. "First PlayStation II Gameplay Screens Revealed!", Next Generation, Sep. 1999. Game Enthusiast Online Highlights, Mar. 18, 1999. Game Enthusiast Online Highlights, Mar. 19, 1999. Game Enthusiast Online Highlights, Mar. 17, 1999. Game Enthusiast Online Highlights, Oct. 20, 1999. Joel Easley, "PlayStation II Revealed", Game Week, Sep. 29, 1999. Inside Sony's Next Generation Playstation, .COPYRGT.1999. Press Release, Mar. 18, 1999. Chris Johnston, "PlayStation Part Deux", Press Start, .COPYRGT.1999. Nikkei Shimbun, "Sony Making SME, Chemical and SPT into Wholly-Owned Subsidiaries", Mar. 9, 1999. AM News: Japanese Developers Not All Sold on PS2, Next Generation, Mar. 16, 1999. Sony To Turn PlayStation Maker Into Wholly Owned Unit-Nikkei, Dow Jones News Service, Mar. 8, 1999. Yumiko Ono, Sony Antes Up Its Chips In Bet On New Game System, Dow Jones News Service, Mar. 4, 1999. MacWeek.Com Gets Inside Story on Connectix VGS for Windows; Controversial Emulator of Sony PlayStation Games Cureently Available for Macs Only, Business Wire, Mar. 12, 1999. "DexDrive Bridges Gap", The Tampa Tribune, Mar. 12, 1999. A Microprocessor With a 128b CPU, 10 Floating-Point MAC's, 4 Floating-Point Dividers, and an MPEG2 Decoder, 1999 IEEE International Solid-State Circuits Conference, Feb. 16, 1999. Dreamcast Instruction Manual, Sega Enterprises, Ltd., .COPYRGT.1998. "Sega To Launch Video Camera for Dreamcast", Reuters Business News, Feb. 16, 2000. David Pescovitz, "Dream On", Wired, Aug. 1999. Randy Nelson, "Dreamcast 101: Everything You Ever Wanted To Know About Sega's Powerful New Console", Official Sega Dreamcast Magazine, Jun. 1999. 2D/3D Graphics Card User Manual, Guillemot .COPYRGT.1999. Nintendo 64 Instruction Booklet, Nintendo of America, 1998. Steven Levy, "Here Comes PlayStaytion II", Newsweek, Mar. 6, 2000. David Sheff, "Sony Smackage: Test Driving The PlayStation II", Wired, Nov. 1999. Introducing The Next Generation PlayStation, Sony Computer Entertainment Inc., .COPYRGT.1999. Leadtek GTS, Aug. 3, 2000, www.hexus.net. Voodoo 5 5500 Review, Jul. 26, 2000, www.hexus.net. ATI Radeon 64 Meg DDR OEM, Aug, 19, 2000, www.hexus.net. Microsoft Xbox--The Future of Gaming, Microsoft Xbox Performance Sheet, www.xbox.com. Robert L. Cook, "Shade Trees", Computer Graphics, vol. 18, No. 3, Jul. 1984. Wang et al., "Second-Depth Shadow Mapping", Department of Computer Science, Univ. N.C, Chapel Hill, N.C. pp. 1-7. Peercy et al., "Efficient Bump Mapping Hardware", Computer Graphics Proceedings, Annual Conference Series, 1997. Gustavo Oliveira, "Refractive Texture Mappig, Part One", www.gamasutra.com, Nov., 10, 2000. John Schlag, Fast Embossing Effects on Raster Image Data, Graphics Gems IV, Edited by Paul S. Heckbert, Computer Science Department, Carnegie Mellon University, Academic Press, Inc., 1994,pp. 433-437. James F. Blinn, "Simulationof Wrinkled Surfaces," Caltech/JPL, pp. 286-292, SIGGRAPH 78 (1978). Tomas Moller and Eric Haines "Real-Time Rendering", AK Peters, Ltd., .COPYRGT.1999, pp. 127-142. Technical Presentation: Vertex Buffers, posted Jun. 12, 2000, www.nvidia.com. Technical Presentation: Hardware Transform and Lighting, www.nvidia.com, posted Jun. 12, 2000. Technical Presentation: Hardware Bump-mapping Choices and Concepts, Jun. 7, 2000, www.nvidia.com. Technical Presentation: How to Bump Map a Skinned Polygonal Model, Jun. 7, 2000, www.nvidia.com. Technical Presentation: Computations for Hardware Lighting and Shading, Mar. 17, 2000, www.nvidia.com. Technical Presentation: Practical Bump-mapping for Today's GPUs, Mar. 17, 2000, www.nvidia.com. Technical Presentation: Shadows, Transparency, & Fog, Mar. 17, 2000 www.nvidia.com. Technical Presentation: GeForce 256 Register Combiners, Mar. 17, 2000,www.nvidia.com. Technical Presentation: TexGen & The Texture Matrix, Mar. 15, 2000 www.nvidia.com. Technical Presentation: Toon Shading, Mar. 15, 2000, www.nvidia.com. Technical Presnetation: D3D 7 Vertex Lighting, Mar. 15, 2000. www.nvidia.com. Technical Presentation: Per-Pixel Lighting (by S. Dietrich) Mar. 14, 2000 www.nvidia.com. Technical Presentation: GeForce 256 and RIVA TNT Combiners, Dec. 8, 1999, www.nvidia.com. Technical Presentation: Vertex Cache Optimization, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Vertex Blending, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Hardware Transform and Lighting, Nov. 12, 1999, www.nvidia.com. Technical Presentation: GeForce 256 Overview, Nov. 12, 1999, www.nvidia.com. Technical Presentation: DirectX 7 and Texture Management, Nov. 12, 1999 www.nvidia.com. Technical Presentation: Dot Product Lighting, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Texture Coordinate Generation, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Phong Shading and Lightmaps, Nov. 3, 1999, www.nvidia.com. Technical Presentation: The ARB_multitexture Extension, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Multitexture Combiners, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Emboss Bump Mapping, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Hardware Accelerated Anisotropic Lighting, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Guard Band Clipping, Nov. 3, 1999, www.nvidia.com. The RenderMan Interface, Stephan R. Keith, Version 3.1, Pixar Animation Studios, Sep. 1989. The RenderMan Interface, Version 3.2, Pixar Animation Studios, Jul. 2000, www.pixar.com. NVIDIA Product Overview, "GeForce2Ultra", NVIDIA Corporation, Aug. 21, 2000, www.nvidia.com. Duke, "Dreamcast Technical Specs", Sega Dreamcast Review, Sega, 2/99, www.game-revolution.com Marlin Rowley, "GeForce 1& 2 GPU Speed Tests", May 11, 2000, www.g256.com. "Dreamcast: The Full Story", Next Generation, Sep. 1998. DirectX 7.0 Programmer's Reference, Microsoft Corporation, 1995-1999 (as part of the DirectX 7.0 SDK on the Conpanion CD included with "Inside Direct3D", Microsoft Programming Series, Peter J. Kovach, Microsoft Press, 1999). "Inside Direct3D", Microsoft Programming Series, Peter J. Kovach, Microsoft Press, 1999. "OpenGL Programming Guide, The Official Guide to Learning OpenGL, Release 1", Jackie Nieder, Tom David, Mason Woo, Addison-Wesley Publishing Co., 1993. "Procedural Elements for Computer Graphics," Second Edition, David F. Rogers, McGraw Hill, 1998. "Real-Time Rendering," Tomas Molleir, Eric Haines, AK Peters, 1999. "Computer Graphics, Principles and Practices," Second Edition, The Systems Programming Series, Foley, van Dam, Fiener, Hughes, Addison Wesley, 1990. "Principles of Three-Dimensional Computer Animation", Revised Edition, Michael O'Rourke, W.W. Norton & Company, 1998. |
000 No overflow/underflow 01X Overflow, Zs is clamped to 1.0 (0xFFFFFF) 0X1 Overflow, Zs is clamped to 1.0 (0xFFFFFF) 1XX Underflow, Zs is clamped to 0.0 (0x000000)
Argument: GXFogTYPES Type; //Type of Fog (none, linear, Exp, Exp2, Bexp, Bexp2) GXBool Proj; //Enable screen to eye space conversion GXBool Range: //Enable horizontal range adjustment f32 StartZ; f32 EndZ; //Start and End (or near-End) Z values f32 NearZ; f32 FarZ; //Near and Far Z values in the scene f32 SideX; //X value of right side of view frustrum GXColor Color; //Fog Color (RGBX8)
void GXInitFogAdjTable( GXFogAdjTable* Table, u16 width, f32 projmtx [4] [4] ); void GXSetFogRangeAdj ( GXBool enable, u16 center, GXFogAdjTable* table );
Register Name Format Description tev_range_adj_c center 10 Specifies the screen's x center for range adjustment enb 1 Enable range adjustment. 0; TEV_ENB_DISABLE; Disable range adjustment. 1; TEV_ENB_ENABLE; Enable range adjustment. tev_range_adj_k r2k, u4.8 Specifies the range r2k + 1 adjustment function: ##EQU1## tev_fog_param_0 a s11e8 Specifies the "a" parameter of the screen to eye space conversion function: ##EQU2## tev_fog_param_1 b_mag u0.24 Specifies the "b" parameter of the z screen to eye space conversion function: ##EQU3## tev_fog_param_2 b_shf 5 Specifies the amount to pre- shift screen z. This is equivalent to the value of "b" parameter's exponent + 1. tev_fog_param_3 fsel 3 Specifies the fog type as follows: 0; TEV_FSEL_OFF; No fog 1; reserved 2; TEV_FSEL_LIN; Exponential Fog 3; reserved 4; TEV_FSEL_EXP; Exponential Fog 5; TEV_FSEL_EX2; Exponential Squared Fog 6; TEV_FSEL_BXP; Backward Exp Fog 7; TEV_FSEL_BX2 Backward Exp Squared Fog proj 1 Specifies whether we have a perspective or orthographic projection: 0; TEV_FOG_PERSP; Perspective projection 1; TEV_FOG_ORTHO; Orthographic projection c s11e8 Specifies the amount to subtract from eye-space Z after range adjustment. tev_fog_color r, g, b 8 Specifies the value of fog color.
![]() ![]() |
![]() ![]() ![]() ![]() |