[Ryan Bergeron]

Download Report

Transcript [Ryan Bergeron]

RealityEngine Graphics
Kurt Akeley
Silicon Graphics Computer
Systems
Overview
• Introduction
• System Architecture
• Features
• Conclusions / Results
Introduction
• SGI created.
• High end graphics work station
• Hardware Solution
Introduction
• First Generation System
– Made in the early 80s
– Useful hardware was just becoming available
• Floating Point hardware
• No Frame-buffer Memory
• No ASICs
– Lack of Functionality other than
transformation.
Introduction
• First Generation System
– Target
• Transformation
• Flat-Shaded Primitives
– Results
• Very simple scenes
Introduction
• Second Generation Systems
– Made in the late 80s
– Useful hardware was available and affordable
• Frame buffers
• ASICs
– Greater Functionality
Introduction
• Second Generation System
– Target
• Interpolate Color and Depth
• Good Performance
• Solid or Wire frame images
– Results
• More complex scenes
Introduction
• RealityEngine (Third Generation)
– Made in the 90s
– Hardware is cheap
– More functionality
Introduction
• RealityEngine
– Target
•
•
•
•
•
½ Million triangles
Filtered Textures
Antialiasing
30Hz rendering for full screen
800000 triangles per second
Architecture
• Overview
System Bus
Geometry Board
Triangle Bus
Raster Memory Boards
Display Gen Board
Architecture
• Geometry Board
Command Processor
– Input FIFO
– Command Processor
– Geometry Engines
GE
GE
GE
GE
Architecture
• Command Processor
– Two kinds of Commands
• Frequent
• Infrequent
– Breaks down commands
– Broadcasts commands to Geometry Engines
Architecture
• Geometry Engine
– Transforms, Lights, Clips polygons
– Decomposes all polygons to triangles.
– Setups a plane equation in X,Y screen
directions
Architecture
• Triangle Bus
– Used to broadcast output from Geometry
Engines
– Huge in size to prevent bottlenecking.
Architecture
• Raster Memory Boards
– 5 Fragment Generators
– 80 Image Engines
– Huge Framebuffer
FG
FG
FG
FG
FG
Architecture
• Fragment Generator
– Fragments
– Coverage Mask
– Texture Controls
– Color
– Fog
Architecture
• Fragment Generator
– Fragment Generation
• Uses Modified Pineda algorithm
– Coverage Mask Generation
• Generates 8x8 Masks
Architecture
• Fragment Generator
– Texture Control
• Based around the most center pixel in mask.
• LOD Fraction and the center pixels location
determine texel location.
Architecture
• Fragment Generator
– Blends texture color with fragment color
– Blends Fog
Architecture
• Image Engine
– Each engine is responsible for X pixels.
– Reconstructs subpixel sample depth using XY
slopes.
– Update the framebuffer.
Architecture
• Display Gen Board
– Each Image Generator pass on color
– Board dithers 12 bits to 10 bits.
– Gamma Corrects
Features
• Antialiasing
– Alpha
• Determine alpha scale
factor for blending.
• Poor results with
polygons
– Multisample
• Two Mask Generation
Modes
– Point Sampled
– Area Sampled
Features
• Texture Mapping
– 2D Textures
• Mipmapped
– 3D Textures
– LOD texture mapping
– Filtering
– Magnification
Features
• Stereo in a Window
• Fast Clipping
– Expand the frustum
– Scissor
Conclusions / Results
• Design Alternatives
– Single-Pass Antialiasing
• Improve resolution through hardware
– Multisample Antialiasing
• Brute Force vs. Finese
– Immediate Resolution of Multisample Color
• Use fragment color most of the time.
Conclusions / Results
• Design Alternatives
– Triangle Bus
– 12-bit Color vs 8-bit
• Visual banding elimination
• Degraded resolution
Conclusions / Results
• Results
– Created a System that
could
• 20-60 Hz display
system
• Handle advanced
functionality
Conclusion
• RealityEngine
• Current Pipeline
Application
Vertex Program
Rasterization
Fragment Program
Display