CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.

Download Report

Transcript CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.

CS662 Computer Graphics Game Technologies

Jim X. Chen, Ph.D.

Computer Science Department George Mason University

Contents

• Tentative – Alan Watt and Fabio Policarpo, Advanced Game Development with Programmable Graphics Hardware – Games we are interested in implementing – Technical approaches – Survey and presentation

Introduction and Cg Programming

• The Hardware Model (Fig. 1.1, P3) – GPUs are highly programmable – They can carry out general computation – NVIDIA’s Cg, OpenGL 2.0’ Shading Language (GLSL), and DirectX 9’s High Level Shading Language (HLSL) – they are similar – “Shader” signifies a vertex, or a pixel or both together – The output of fragment program is a value for a pixel

The Hardware Model

• GPU programming involves a vertex program and/or a fragment program. • Cg is not application specific, may be used for parallel computing, for example. • GPGPU – general purpose computation on GPU.

The Hardware Model

• Vertex processor – Transformation, primitive assembly (lines, polygons), clipping, rasterization resulting in a set of pixel locations and fragments – A fragment is a potential pixel • Fragment processor – Fragment operations such as texture mapping. Result imy be a color (framebuffer) and a value (z-buffer) • Example: Gouraud shading and Phong shading – Gouraud shading needs vertex processor to calculate lighting at a vertex – Phong shading needs a fragment processor to calculate lighting at a pixel

Programming Overview

• The Programming Model (Fig. 1.2, P6) – Data is streamed into the processor and operated on by a kernel function (fragment program) – Up to 16 arithmetic processors operate on the stream, and each data element is processed in parallel – There is no dependencies between elements – A shader is written to operate on a single vertex or fragment and is executed on every vertex or fragment

The Programming Model

• Parallelism works in rendering and related applications that have no communication between processes • GPU fragment programs reads from texture maps and write to the framebuffer – May need to copy the results from the framebuffer back to texture maps. • Hardware limits are expressed by profiles

The Languages