CSE 114 – Computer Science I Lecture 1: Introduction

advertisement
CSE ITS
380 –102
Computer
Game Programming
– 3D Modeling
for Games
Introduction
Introduction
Who am I?
Richard McKenna
E-mail: richard@cs.stonybrook.edu
Phone: 631-632-9564
Office: CS Room 1436
Office hours:
MF 12pm – 1pm
TuTh 1pm - 2pm
and by appointment
http://www.cs.stonybrook.edu/~richard
Course Homepages
• http://www.cs.stonybrook.edu/~richard/its102/
– syllabus
– schedule (lecture slides, hw, etc …)
– etc.
• http://blackboard.stonybrook.edu
– grades
Course Description
• A seminar for students in the College of Information and
Technology Studies. Seminar topics vary annually by
section and cover a variety of subjects under the scope of
information, technology, and engineering studies.
Seminar Description
This course will examine the tools and techniques
used for creating animated, textured, 3D models via
modeling software. Students in this course will do
hands-on exercises using modeling tools and will
create their own animated characters using
Blender3D.
Course Goals
• To impart a strong sense of academic community
• To acquaint first-year students with a full-time
member of the faculty engaged in ITS-related
studies
• To provide students with an opportunity to engage
directly with an academic topic in a small setting
• To allow for experimentation in curriculum design
Seminar Goals
At the end of the course you should have the
following knowledge and skills:
• Understand how to construct the geometry for an
interesting 3D model using a modeling tool
• Understand how to specify material properties for
a 3D model
• Understand how to make custom textures and to
use them to custom texture map your model
• Understand how to rig and animate your model
• Understand how your animated 3D model may be
used by a game application
Course Topics
•
•
•
•
•
•
•
3D Concepts
Using Blender3D
Meshes
Materials
Textures
3D Animation
The Blender Game Engine
Grading
• All First-Year 102 seminars are graded on an A C/U basis. Students will be evaluated on the basis
of attendance, participation, and work
Course Requirements
• Class Attendance/Participation
• Insect Project
• Game-Related Event Participation
– Nerdfest: Friday, 2/14 @ 6pm in SAC Ballroom
– Gamers Guild Playtest Night: Thursday, 5/1 @ 7pm in CS Lobby
– Game Programming Competition: Friday, 5/16 @ Wang Center
• ITS Requirement
Why study games?
• To get game
development jobs
• Because it is fun
• Because they are
complex
• Because they push the
envelope of computing
technology
• Bottom line:
– games are natural
learning devices
– making games is a great
way to learn other things
To really join the industry
Modern Games are Complex
• Can be very complex
• Technologies used:
–
–
–
–
–
–
–
–
2D & 3D Graphics
Sound & Music
Networking
Artificial Intelligence
Physics Simulation
Parallel Processing
Custom scripting languages
Etc.
• All of it must be implemented efficiently
Pong by Atari, released to public 1975
Battlefield 3 by Electronic Arts/DICE
Blizzard’s World of Warcraft
• Over 10,000,000 subscribers
– thousands play simultaneously
– players in countries around the world
• Requires:
– Rich graphical environment
– Complex networking
– Semi-nude dancing
• Needs an army to make it. And:
– maintain
– update
– count profits
The Development Team/Army
Programmers
Designers
Producers
Artists
Audio
Engineers
Why Blender3D?
• It can make great content
• It's widely used
• It's free
Download & Install
• http://www.blender.org/download/getblender
• Latest version 2.65a
Blender 3D: Noob to Pro
• http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro
What can blender do?
• Create 3D content
• Create 3D worlds
• Produce realistic, beautiful, fantastic 2D projected
renderings of 3D content/worlds
First, some formal definitions
• What's a 3D model?
– an abstract version of an object
– renderable
– data (vertices, edges, textures, etc.)
• What's modeling?
– Process of making 3D models
Model Data
• Vertices
• Edges
• Faces
• Surface Normals
Steps in the Modeling Process
• Object modeling
• Shading
• Lighting
• Rigging
• Posing
3D World Construction & Rendering
• Based on Geometry
• Imagine a model of this room
• Everything needs a position in 3D space
– think 3D coordinates (x, y, z)
– Where's the origin (0,0,0) of our room?
Blender3D Axes
• X, Y, Z
– Cartesian Coordinates
– Are negative coordinates ok?
• Right-handed System, Huh?
Axes of Rotation
• We'll want to rotate stuff
• How do we denote a rotation?
• We need 2 things:
– Axis of rotation
– Angle around axis
• Right-grip rule
Coordinate Transformations
• Changes an object's coordinate values in some way
– Moving an object (translation)
– Rotating an object (rotation)
– Enlarging or shrinking an object (scaling)
Translation, Rotation, & Scaling
Multiple Transformations
• They can be combined on an object
• Order of processing matters
Projections
• Our 3D worlds are projected onto 2D screens
– Orthographic vs. Perspective projection
Orthographic
Perspective
Orthographic views can be useful. Why?
Perspective Projection uses Foreshortening
• What's that?
– nearby objects rendered larger than faraway objects
– gives the illusion of depth and distance
What's a vanishing point?
• Imagine looking down a set of train tracks
• They appear to converge at a point on the horizon
• This is the vanishing point
The Projection Plane
• Depends on camera position and orientation
Blender Coordinates
• Global Coordinate System
– each scene has its own
– fixed origin & orientation
– virtual camera may be moved about
• Local Coordinate System
– each object has its own
Download