COMP 14 - Joshua Stough
Download
Report
Transcript COMP 14 - Joshua Stough
COMP 110
Introduction to Programming
Mr. Joshua Stough
What is Computer Graphics?
At Least To a CS Major...
• Converting a set of models into an image
–
–
–
–
geometric model
lighting model
color model
...
• Not graphic design
– no Photoshop
• Very mathematical
– matrices, vectors (linear algebra is a must)
But, What's It Good For?
•
•
•
•
Movies
Video Games
Medical Imaging
Virtual
Environments
• Scientific Data
Visualization
Computer Graphics @ UNC
• UNC is one of the top computer graphics
research universities.
• COMP 575
– prereqs: COMP 411 (computer organization),
(linear algebra)
Graphics Research @ UNC
Examples
• Office of the Future
• nanoManipulator
• Effective Virtual Environments (EVE)
Office of the Future
Goal: Allow distant people to feel as
though they are together in a shared
office space
nanoManipulator
Goal: Allows scientists to
view and interact with
objects (scaled up by
1,000,000:1) under a
scanning-probe
microscope
Currently used by "real" scientists to study
things like carbon nanotubes, DNA, adeno
viruses, fibrin.
Effective Virtual Environments
Goal: Allow a user in
a virtual environment
to interact naturally
with virtual objects.
Jobs in Computer Graphics
• Bachelor's in CS
– video game programmer
• VERY good grades, especially in
graphics courses (COMP 575)
• Master's in CS
– data visualization toolkit
programmer
– video game programmer
– movie special effects
programmer (at Pixar, etc)
• PhD in CS
– all of the above + research
Typical Job Path
• testing and support
• programmer
• designer
• architect
• management
Introduction to Graphics
• A picture or drawing must be digitized
for storage on a computer
• A picture is broken down into pixels
(picture element)
– each pixel is stored separately
– all pixels are square
– every pixel in a picture is the same size
• Complete picture is stored by storing
the color of each pixel
Pixels and Color
• A black and white picture can be stored
using one bit per pixel
– 0 = white
– 1 = black
one pixel
Representing Color
• A color picture requires more information
– every color can be represented as a mixture of the
three primary colors red, green, and blue
• In Java, each color is represented by three
numbers between 0 and 255 that are
collectively called an RGB value
– 1 byte (8 bits) to store the contribution of each
color (red, green, blue)
Carolina Blue:
R
172
G
194
B
227
Basic Building Blocks
• A step up from the pixel is the line.
• How hard could it be to draw?
Line Drawing
• A line can be uniquely
specified by two points
• A line can be specified
by a slope, m, and a yaxis intercept, b
• Goal: construct the best
possible approximation
of an ideal line
Slope-Intercept Algorithm
• Start at one
endpoint
• Compute dy/dx
• Increment
– x by 1
– y by dy/dx
Problem: Pixels are discrete (represented by
integers not floating point)
Solution: Bresenham's line drawing algorithm
Drawing Triangles
• A step up from the
line is the filled
triangle
– 3 lines for edges
– many lines in
between to fill in
• Filling the triangle is
sometimes called
scan conversion or
rasterization
Model to Image
Graphics Pipeline
• Modeling Transformation
– model coordinates to world coordinates
• Illumination
– how much light is reflected by a certain point on an object to the
viewer
• View Transformation
– center the picture at the viewer
• Clipping
– which points are in the field of view
• Projection
– take into account perspective
• Rasterization
– what color each pixel should be (uses Bresenham line drawing)
Light
Source
Camera
(Viewer)
Phong Illumination Model
• Approximates all reflections with three
terms:
– ambient
– diffuse
– specular
Ambient
• Not related to particular light source
• Not dependent on viewer's location
– view independent
• Not affected by object's shape
• Examples: moonlight, dusk
Diffuse
• Reflects in all directions
• View independent
• Dependent on object's shape
• Dependent on location of light source
• Examples: chalk, tire
Specular
• See light source directly
reflected on the surface
• View dependent
• Dependent on object's
shape
• Dependent on location of
light source
• Examples: mirror, shiny
plastic, metal
Lighting Demo
What is Networking?
• Basically, the transfer of data from one
computer to another.
• In the Internet, data transfer is divided into
packets.
But, What's It Good For
•
•
•
•
File Transfer
Email
Web Pages
Streaming
Audio/Video
• Instant Messaging
Networking @ UNC
• UNC is one of the top places for
networking research
– "up and coming“
Networking @ UNC
Examples
• Traffic Monitoring and Modeling
– what does Internet traffic look like?
– certain times of the year, we record the header
information (size, when sent) of every packet
leaving UNC
• don't worry -- it's anonymous
• Congestion Control
– how to send packets most efficiently
• RTT Variability
– why does one packet in a connection take so
much longer to arrive than another packet?
Jobs in Networking
• BS
– programmer
– (+ various certifications) systems administrator / network
administrator
• MS
– developer / architect
– mainly affects starting level
• PhD
– research
Typical Job Path
• testing and support
• programmer
• designer
• architect
• management
Internet Components
• LAN
– local-area network
– home network,
campus network
local ISP
regional ISP
• WAN
– wide-area network
– connects multiple
LANs over long
distances
company
network
The Internet
• The Internet is a WAN which spans the entire
planet
– started as a US government project
• The word Internet comes from the term
internetworking, which implies communication
among networks
• Less than 600 computers were connected to
the Internet in 1983; now there are many
millions.
MCI (Verizon) Backbone
TCP/IP
• A protocol is a set of rules that determine how
things communicate with each other
• Most of the software which manages Internet
communication follows a suite of protocols called
TCP/IP
• The Internet Protocol (IP) determines the format
of the information as it is transferred
• The Transmission Control Protocol (TCP)
handles lost information
What is a Protocol?
Example
• A specification for a set of message exchanges
Human protocols
Computer protocols
What time is it?
What time is COMP 110?
Hi
TCP connection
request
TCP connection
reply
Hi
Do you have
the time?
Yes!
It’s 2:00
Get http://www.cs.unc.edu/Admin/Schedules
Time
<file>
IP and Internet Addresses
• Each computer on the Internet has a unique IP
address, such as:
204.192.116.2
• Most computers also have a unique Internet name,
which is also referred to as an Internet address:
bayou.unc.edu
www.slashdot.org
• The first part often indicates a particular computer
(bayou)
• The rest is the domain name, indicating the
organization (unc.edu)
Domain Names
The last section (the suffix) of each domain name
usually indicates the type of organization:
edu - educational institution
com - commercial business
org - non-profit organization
Sometimes the suffix
indicates the country:
uk
au
ca
se
-
United Kingdom
Australia
Canada
Sweden
New suffix categories
are being considered
Domain Names
• A domain name can have several parts
– ex: unc.edu, cs.unc.edu, math.unc.edu
• Unique domain names mean that multiple sites can
have individual computers with the same local name
– ex: curie.cs.unc.edu, curie.duke.edu
• When used, an Internet address is translated to an IP
address by software called the Domain Name
System (DNS)
• There is no one-to-one correspondence between the
sections of an IP address and the sections of an
Internet address
Email
email msg
SMTP Server
(smtp.unc.edu)
Your Machine
Internet
check msgs
email msg
IMAP / POP Server
(hotmail.com)
Your Friend's
Machine
The Web
• Base page
size: 64 KB
• 33 embedded
images
– smallest: 43 B
– largest: 20 KB
HyperText
Transfer Protocol
The Web
HTTP request
HTTP response
Your Machine
Web Server
• Web browser sends a separate request for
each object (e.g., embedded image) on the
web page
• Requests are usually much shorter than
responses
The Web
What Happens When You Click A Link?
• http://www.cs.unc.edu/~stough/
• Browser examines the URL and determines
the protocol and remote machine it must
access
– protocol = http
– remote machine = www.cs.unc.edu (web server in
the CS dept)
• Browser uses TCP/IP protocols to establish a
connection with remote machine
The Web
What Happens When You Click A Link?
• Once connection established, send HTTP
message GET specifying page to access
– GET ~stough/index.html
• Remote machine sends a copy of page to
your browser using TCP/IP
• Your browser receives and displays its
contents
Setting Up Your Web Page
• http://onyen.unc.edu
• Choose "Subscribe to Services"
• Choose WWW
– creates a public_html folder in your AFS
space (H: drive)
• Anything you put in your public_html
folder will be accessible at
http://www.unc.edu/~onyen/
index.html
• Use Notepad to create index.html
– should be saved in your new
public_html folder
• Sample:
<html>
<head><title>My Web Page</title></head>
<body>
<h1>My Web Page</h1>
Welcome to my web page! I'm a student at
the <a href="http://www.unc.edu">University
of North Carolina at Chapel Hill</a>.
</body>
</html>
index.html
Another Sample
<html>
<head><title>My Web Page</title></head>
<body>
<h1>My Web Page</h1>
Welcome to my web page! I'm a student at
the <a href="http://www.unc.edu">University
of North Carolina at Chapel Hill</a>.
<p>In Fall 2007, I took COMP 110. </body>
</html>
Interested in Web
Programming?
• COMP 416
• Taught in Fall
• Prerequisite: COMP 410
Medical Image Analysis