ECE Offering Three Graphics / Games Courses in the Spring 2012 Semester

18 November 2011

The ECE department will be offering three graphics and game-design related courses in the Spring 2012 semester. These courses cover 3D graphical and geometric modeling (EE 4730), GPU hardware and advanced programming (EE 7700-2), and computer game algorithms and networking (EE 4700-2). EE 7700-2 is available to undergraduate students who have completed 75 credits and have at least a 3.5 GPA. Two dinosaur skeletons colored to illustrate segmentation techniques.

EE 4730, 3D Graphical and Geometric Modeling, introduces the theoretical and computational background of geometric data modeling and processing, specifically, how to represent, model, and analyze 3D models and scenes. After covering/reviewing basic computer graphics programming and geometry concepts, we will go over popular 3D geometric data representation schemes and know how to effectively use them in different graphics, computer-aided design, vision, or animation tasks. The course will be offered by Xin “Shane” Li.

River of balls image.

EE 7700-2, GPU Microarchitecture, will cover GPU design, and include case studies of current NVIDIA products, GPU-like almost-here many-core designs such as Intel's Knight's Corner/Ferry, and ideas for longer-range products. The course will look at advanced GPU programming techniques, including coverage of the pseudo assembly language documented by the manufacturers as well as the GPUs' true machine language. Programming will be for graphical and non-graphical (often scientific) purposes. A question to be looked at throughout the course is the essential reasons for the differing designs of CPUs and GPUs, though both are multicore processors with vector instructions. These questions will be examined using visualization tools and code examples, including animations in which the GPU is used for both graphics and physics. The image to the left shows one such animation, in which balls bounce and roll off a half-cylinder platform. The course will be offered by David M. Koppelman.

EE 4700-2, Computer Game Algorithms and Networking. Computer games are widely popular, with online games capable of supporting tens of thousands of simultaneous players around the world. Making these games work quickly, fairly, and consistently is not trivial. This class will examine two engineering aspects essential for a successful game: algorithms and networking. Algorithms determine, for instance, the actions of non-player characters. How to control these characters so that they act in a way that seems realistic to a player? How to control thousands of these characters? Supporting thousands of players in the same game entails high computation and bandwidth demands. Scaling up to ever larger numbers of players poses large challenges in networking. It also raises new issues; for instance, if a game distributes computation over player machines to avoid a bottleneck at a central server, then new opportunities to cheat arise that must be countered. The course will be offered by Jerry Trahan.