- •1. TABLE OF CONTENTS
- •2. AN INTRODUCTION TO UNIX
- •2.1 OVERVIEW
- •2.2 UNIX
- •2.2.1 Using UNIX Workstations in general:
- •2.2.2 Directories, Files, Etc.
- •2.2.3 Advanced Concepts
- •2.3 THE NETWORK
- •2.4 GOOD MANNERS
- •3. THE INTERNET
- •3.1 NETWORKS
- •3.1.1 Computer Addresses
- •3.2 NETWORK TYPES
- •3.2.1 Permanent Wires
- •3.2.2 Phone Lines
- •3.3 NETWORK PROTOCOLS
- •3.3.1 Mail Transfer Protocols
- •3.3.1.1 - Attachments
- •3.3.1.2 - Mail Lists
- •3.3.2 FTP - File Transfer Protocol
- •3.3.3 News
- •3.3.4 HTTP - Hypertext Transfer Protocol
- •3.3.5 Chat
- •3.3.6 Novell
- •3.3.7 Security
- •3.4 DATA FORMATS
- •3.4.1 HTML - Hyper Text Markup Language
- •3.4.1.1 - Publishing Web Pages
- •3.4.2 URLs
- •3.4.3 Hints
- •3.4.4 Specialized Editors
- •3.4.6 Encryption
- •3.4.7 Compression
- •3.5 PULLING ALL THE PROTOCOLS AND FORMATS TOGETHER WITH BROWSWERS
- •3.6 OTHER STUFF
- •3.6.1 Clients and Servers
- •3.6.2 Java
- •3.6.3 Javascript
- •3.6.5 Searches
- •3.6.6 ActiveX
- •3.6.7 Graphics
- •3.6.8 Animation
- •3.6.9 Video
- •3.6.10 Sounds
- •3.6.11 Other Program Files
- •3.6.12 Fancy Stuff
- •4. TEACHING WITH THE INTERNET
- •4.1 LECTURES
- •4.1.1 Equipment
- •4.1.2 Techniques
- •4.2 ON-LINE NOTES
- •4.3 ON-LINE MARKING
- •4.3.1 Web Pages
- •4.3.2 email
- •4.4 The Time-Line For My First On-Line Course (Fall 1996)
- •5. WWW and HTML
- •5.1 Why Bother?
- •5.2 Where to Find Netscape
- •5.3 How to Get Your Own Home Page
- •5.4 How to Create a file
- •5.5 Resources
- •6. A BASIC INTRODUCTION TO ‘C’
- •6.2 BACKGROUND
- •6.3 PROGRAM PARTS
- •6.4 HOW A ‘C’ COMPILER WORKS
- •6.5 STRUCTURED ‘C’ CODE
- •6.6 ARCHITECTURE OF ‘C’ PROGRAMS (TOP-DOWN)
- •6.7 CREATING TOP DOWN PROGRAMS
- •6.8.1 Objectives:
- •6.8.2 Problem Definition:
- •6.8.3 User Interface:
- •6.8.3.1 - Screen Layout (also see figure):
- •6.8.3.2 - Input:
- •6.8.3.3 - Output:
- •6.8.3.4 - Help:
- •6.8.3.5 - Error Checking:
- •6.8.3.6 - Miscellaneous:
- •6.8.4 Flow Program:
- •6.8.5 Expand Program:
- •6.8.6 Testing and Debugging:
- •6.8.7 Documentation
- •6.8.7.1 - Users Manual:
- •6.8.7.2 - Programmers Manual:
- •6.8.8 Listing of BeamCAD Program.
- •6.9 PRACTICE PROBLEMS
- •7. GUI DESIGN
- •7.1 PRACTICE PROBLEMS
- •8. AN EXAMPLE - BEAMCAD
- •9. PROGRAMMING IN JAVA
- •9.1 OVERVIEW
- •9.2 THE LANGUAGE
- •9.3 OBJECT ORIENTED PROGRAMMING
- •9.4 REFERENCES/BIBLIOGRAPHY
- •10. DATABASES
- •11. MESSAGE PASSING ON NETWORKS
- •12. MATHEMATICAL ELEMENTS OF COMPUTER GRAPHICS
- •12.1 INTRODUCTION
- •12.2 PIXELS
- •12.2.1 The Perspective Transform
- •12.3 LINE DRAWING
- •12.3.1 Hidden Lines
- •12.4 POLYGON DRAWING
- •12.5 SHADED POLYGONS
- •12.6 COLORS
- •12.6.1 Color Maps
- •12.6.1.1 - Quantization with an Octree RGB Cube
- •12.6.1.1.1 - Algorithm and Implementation
- •12.6.1.1.2 - Color Quantization Data Structures
- •12.7 DITHERING
- •12.7.1 A Model for Light Ray Reflection
- •12.7.2 A Model for Light Ray Refraction:
- •12.7.3 A Model for Specular Reflection of Point Light
- •12.8 RAY TRACING
- •12.8.1 Basic Ray Tracing Theory
- •12.8.1.1 - A Model for Diffuse Reflection of Ambient Light
- •12.8.1.2 - A Model for Diffuse Reflection of Point Light:
- •12.8.1.3 - Collision of a Ray with a Sphere:
- •12.8.1.4 - Collision of a Ray With a Plane:
- •12.8.1.5 - Mapping a Pattern
- •12.8.2 Ray Tracer Algorithms
- •12.8.3 Bounding Volumes
- •12.8.4 Shadows
- •12.8.5 Aliasing
- •12.8.6 Advanced topics
- •12.9 RADIOSITY
- •12.10 ADVANCED GRAPHICS TECHNIQUES
- •12.10.1 Animation
- •12.11 REFERENCES
- •12.12 PRACTICE PROBLEMS
- •13. NEW TOPICS
- •13.1 VIRTUAL REALITY
- •13.2 MULTIMEDIA
- •14. VISIONS SYSTEMS
- •14.1 OVERVIEW
- •14.2 APPLICATIONS
- •14.3 LIGHTING AND SCENE
- •14.4 CAMERAS
- •14.5 FRAME GRABBER
- •14.6 IMAGE PREPROCESSING
- •14.7 FILTERING
- •14.7.1 Thresholding
- •14.8 EDGE DETECTION
- •14.9 SEGMENTATION
- •14.9.1 Segment Mass Properties
- •14.10 RECOGNITION
- •14.10.1 Form Fitting
- •14.10.2 Decision Trees
- •14.11 PRACTICE PROBLEMS
- •15. SIMULATION
- •15.1 MODEL BUILDING
- •15.2 ANALYSIS
- •15.3 DESIGN OF EXPERIMENTS
- •15.4 RUNNING THE SIMULATION
- •15.5 DECISION MAKING STRATEGY
- •15.6 PLANNING
- •15.7 NEURAL NETWORK THEORY
- •16. ARTIFICIAL INTELLIGENCE (AI)
- •16.1 OVERVIEW
- •16.2 EXPERT SYSTEMS
- •16.3 FUZZY LOGIC
- •16.4 NEURAL NETWORKS
- •16.4.1 Neural Network Calculation of Inverse Kinematics
- •16.4.1.1 - Inverse Kinematics
- •16.4.1.2 - Feed Forward Neural Networks
- •16.4.1.3 - The Neural Network Setup
- •16.4.1.4 - The Training Set
- •16.4.1.5 - Results
page 132
12.4 POLYGON DRAWING
•This method bears similarities to the hidden line method. The polygons are still depth sorted, but now polygons are filled, and back facing polygons are removed.
•The basic method is as shown below,
Polygons with |
|
|
Perform Polygon |
|
|
Sort Polygons |
|
|
Outside and |
|
|
Transform with |
|
|
by Depth |
|
|
|
|
|
|
|
|
|||
Color |
|
|
Perspective |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Transform |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
Remove |
Clip |
Draw, and fill |
overlapping |
polygons from |
|
Back Facing |
polygons |
back to front |
Polygons |
|
|
• Sorting polygons by depth is basically a function of finding the general center, and then drawing the rear most polygons first.
nj
|
∑ Sj, iz |
where, |
|
|
|
|
depthj |
= depth of center of polygon j |
|||
depthj = |
i = 1 |
||||
|
|
|
|||
------------------ |
nj = |
number of vertices inpolygonj |
|||
|
nj |
||||
|
|
Sj, iz |
= |
Screen depth of vertex i in polygonj |
• A backfacing polygon can be eliminated by calculating its surface normal. The normal is then compared to the viewing axis. If there is more than 90deg between them the polygon doesn’t need to be drawn. (Note: this method assumes that vertices are defined in a counter clockwise order for the outside surface).
page 133
Nj = ( V2, j – V1, j) × ( V0, j – V1, j) view = P – VRP
projj = Nj • view where,
Nj = Normal to outside face of polygon view = view direction vector
projj = The projection of the two vectors
Note: when the proj value is negative, the polygon is back facing and doesn’t need to be drawn.
• The above diagram only talks about overlapping polygons, but penetration is an equivalent problem.
Penetrating
Overlapping
•Advantages,
-with color added, objects look more real.
-still relatively easy to implement, and run quickly.
•Disadvantages,
-doesn’t suit all computer equipment (eg. laser printers).
-surfaces must have outside defined and surfaces must be closed.
•Fill Algorithms generally look at a polygon on the screen, and fill the inside with pixels of a specific color.
•Clipping can also be done by a technique called Z-Buffering, using extra graphics memory. An extra byte is used to store the depth of a pixel when it is calculated. If a new pixel is chosen, it
page 134
overwrites the last.
******** Include figure for inside/outside test
12.5 SHADED POLYGONS
•This method is identical to the previous method, except a polygon will be filled with pixels of varying color, which makes the object appear more real.
•A Light Source(s) is defined for a picture. The light has a specific color, direction, distance, etc.
•Ambient light (background, non-direct) also plays a part.
Raster Scan Lines
Light
Ambient
Light
Viewplane
The Light Ray
corresponds with Polygon a pixel on the screen
•The color of a pixel will change with the angle of the polygon to the light, the distance from the light, the color of the light, etc.
•Advantages,
-the solid begins to look like cartoons, or paintings
-still simple to understand and implement
•Disadvantages,
-can be slow
-requires shaded image display capabilities
•Many Shading methods can be used to give different approximations of light,
-Goroud shading
-Phong shading