RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

28
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems

Transcript of RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Page 1: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

RealityEngine Graphics

Kurt Akeley

Silicon Graphics Computer Systems

Page 2: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Overview

• Introduction

• System Architecture

• Features

• Conclusions / Results

Page 3: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Introduction

• SGI created.

• High end graphics work station

• Hardware Solution

Page 4: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

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.

Page 5: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Introduction

• First Generation System– Target

• Transformation• Flat-Shaded Primitives

– Results• Very simple scenes

Page 6: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Introduction

• Second Generation Systems– Made in the late 80s– Useful hardware was available and affordable

• Frame buffers• ASICs

– Greater Functionality

Page 7: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Introduction

• Second Generation System– Target

• Interpolate Color and Depth• Good Performance• Solid or Wire frame images

– Results• More complex scenes

Page 8: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Introduction

• RealityEngine (Third Generation)– Made in the 90s

– Hardware is cheap

– More functionality

Page 9: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Introduction

• RealityEngine– Target

• ½ Million triangles• Filtered Textures• Antialiasing• 30Hz rendering for full screen• 800000 triangles per second

Page 10: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Overview

Geometry Board

Raster Memory Boards

Display Gen Board

Triangle Bus

System Bus

Page 11: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Geometry Board– Input FIFO

– Command Processor

– Geometry Engines

Command Processor

GE GE GE GE

Page 12: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Command Processor– Two kinds of Commands

• Frequent• Infrequent

– Breaks down commands

– Broadcasts commands to Geometry Engines

Page 13: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Geometry Engine– Transforms, Lights, Clips polygons

– Decomposes all polygons to triangles.

– Setups a plane equation in X,Y screen directions

Page 14: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Triangle Bus– Used to broadcast output from Geometry

Engines

– Huge in size to prevent bottlenecking.

Page 15: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Raster Memory Boards– 5 Fragment Generators

– 80 Image Engines

– Huge Framebuffer

FG FG FG FG FG

Page 16: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Fragment Generator– Fragments– Coverage Mask– Texture Controls– Color– Fog

Page 17: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Fragment Generator– Fragment Generation

• Uses Modified Pineda algorithm

– Coverage Mask Generation• Generates 8x8 Masks

Page 18: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Fragment Generator– Texture Control

• Based around the most center pixel in mask.

• LOD Fraction and the center pixels location determine texel location.

Page 19: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Fragment Generator– Blends texture color with fragment color

– Blends Fog

Page 20: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Image Engine– Each engine is responsible for X pixels.

– Reconstructs subpixel sample depth using XY slopes.

– Update the framebuffer.

Page 21: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Architecture

• Display Gen Board– Each Image Generator pass on color

– Board dithers 12 bits to 10 bits.

– Gamma Corrects

Page 22: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Features

• Antialiasing– Alpha

• Determine alpha scale factor for blending.

• Poor results with polygons

– Multisample• Two Mask Generation

Modes– Point Sampled

– Area Sampled

Page 23: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Features

• Texture Mapping– 2D Textures

• Mipmapped

– 3D Textures– LOD texture mapping– Filtering– Magnification

Page 24: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Features

• Stereo in a Window

• Fast Clipping– Expand the frustum– Scissor

Page 25: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

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.

Page 26: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Conclusions / Results

• Design Alternatives– Triangle Bus

– 12-bit Color vs 8-bit• Visual banding elimination• Degraded resolution

Page 27: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Conclusions / Results

• Results– Created a System that

could• 20-60 Hz display

system• Handle advanced

functionality

Page 28: RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.

Conclusion

• RealityEngine • Current Pipeline

Application

Vertex Program

Rasterization

Fragment Program

Display