©College of Computer and Information Science, Northeastern UniversityOctober 19, 20151 CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2007.

Slides:



Advertisements
Similar presentations
Short History of Computer Graphics. Early 60's: – Computer animations for physical simulation; Edward Zajac displays satellite research using CG in 1961.
Advertisements

©College of Computer and Information Science, Northeastern UniversityApril 22, CS U540 Computer Graphics Prof. Harriet Fell Spring 2009 Lecture 4.
CP411 Computer Graphics, Wilfrid Laurier University Introduction # 1 Welcome to CP411 Computer Graphics 2012 Instructor: Dr. Hongbing Fan Introduction.
3D Graphics Rendering and Terrain Modeling
 Engineering Graphics & Introductory Design 3D Graphics and Rendering REU Modeling Course – June 13 th 2014.
CS 376 Introduction to Computer Graphics 04 / 09 / 2007 Instructor: Michael Eckmann.
Computer Graphics (Fall 2005) COMS 4160, Lecture 16: Illumination and Shading 1
Computer Graphics (Fall 2008) COMS 4160, Lecture 1: Overview and History Ravi Ramamoorthi
History of computer graphics CS Introduction to Computer Graphics Autumn quarter, 2000 Slides for September 28 lecture.
CS6500 Adv. Computer Graphics © Chun-Fa Chang, Spring 2003 Texture Mapping.
Computer Graphics (Fall 2004) COMS 4160, Lecture 1: Overview and History Ravi Ramamoorthi
Computer Graphics (Spring 2008) COMS 4160, Lecture 1: Overview and History Ravi Ramamoorthi
 Marc Levoy History of computer graphics CS Introduction to Computer Graphics Autumn quarter, 2003 Slides for September 25 lecture.
Computer Graphics Introduction
 Marc Levoy Choosing the right course CS 148 Winter, Hanrahan, not SCPD undergraduates only requires 107 terminal course broad and conceptual CS.
 Marc Levoy History of computer graphics CS Introduction to Computer Graphics Autumn quarter, 2001 Slides for September 27 lecture.
Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 1: Overview and History Ravi Ramamoorthi
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
CIS 581 Interactive Computer Graphics (slides based on Dr. Han-Wei Shen’s slides) Instructor: Rick Parent Credit: 4 Class: MWF 10:30.
©College of Computer and Information Science, Northeastern UniversityAugust 10, CS 4300 Computer Graphics Prof. Harriet Fell Fall 2012 Lecture 1.
Advanced Computer Graphics Spring-2011 Kocaeli University Computer Engineering Department.
Cornell CS465 Fall 2004 Lecture 1© 2004 Steve Marschner 1 CS465: Computer Graphics I Professor: Steve Marschner.
CS-557 Gregory Dudek CD Contents. CS-557 Gregory Dudek Course description Lecture schedule by week 1997 Image Gallery Assignments Page Morphing Notes.
Polygon Shading. Assigning color to a shape to make graphical scenes look realistic, or artistic, or whatever effect we’re attempting to achieve But first.
COMP4070 Computer Graphics Dr. Amy Zhang. Welcome! 2  Introductions  Administrative Matters  Course Outline  What is Computer Graphics?
©College of Computer and Information Science, Northeastern UniversitySeptember 7, CS U540 Computer Graphics Prof. Harriet Fell Spring 2007 Lecture.
College of Computer and Information Science, Northeastern UniversitySeptember 7, CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2007.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10: Computer Graphics Computer Science: An Overview Tenth Edition.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Chapter 10: Computer Graphics
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10: Computer Graphics Computer Science: An Overview Tenth Edition.
Computer Graphics ( Course Introduction ) Jehee Lee Seoul National University.
CS 376 Introduction to Computer Graphics 04 / 11 / 2007 Instructor: Michael Eckmann.
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Computer Graphics. Requirements Prerequisites Prerequisites CS 255 : Data Structures CS 255 : Data Structures Math 253 Math 253 Experience with C Programming.
College of Computer and Information Science, Northeastern UniversityOctober 12, CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2006.
INTRODUCTION INTRODUCTION Computer Graphics: As objects: images generated and/or displayed by computers. As a subject: the science of studying how to generate.
College of Computer and Information Science, Northeastern UniversityOctober 17, CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 5.
©College of Computer and Information Science, Northeastern UniversityMay 27, CS 4300 Computer Graphics Prof. Harriet Fell Fall 2012 Lecture 4 – September.
College of Computer and Information Science, Northeastern UniversityOctober 31, CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2009.
Computer Graphics ( Course Introduction ) Jehee Lee Seoul National University.
©College of Computer and Information Science, Northeastern UniversityNovember 29, CS 5310 Graduate Computer Graphics Prof. Harriet Fell Spring 2011.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
Computer Graphics Lecture 08 Fasih ur Rehman. Last Class Ray Tracing.
Advanced Computer Graphics
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
Computer Graphics Research: _history/new_page_6.htm _history/new_page_6.htm Gian Joseph 4/29/2010.
Subject Name: Computer Graphics Subject Code: Textbook: “Computer Graphics”, C Version By Hearn and Baker Credits: 6 1.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © Visible Surface Determination (VSD) To render or not to render, that is the question… 1 of.
CS 325 Introduction to Computer Graphics 04 / 12 / 2010 Instructor: Michael Eckmann.
Data Representation. What is data? Data is information that has been translated into a form that is more convenient to process As information take different.
Handle By, S.JENILA AP/IT
Computer Graphics Researched via: Student Name: Barbara Florival Date: 12| 7 th | 2O1O.
Digital Media Lecture 5: Vector Graphics Georgia Gwinnett College School of Science and Technology Dr. Jim Rowan.
CS 445 / 645: Introductory Computer Graphics Review.
©College of Computer and Information Science, Northeastern UniversityFebruary 21, CS U540 Computer Graphics Prof. Harriet Fell Spring 2009 Lecture.
©College of Computer and Information Science, Northeastern UniversityFebruary 25, CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2009.
Computer Graphics (Fall 2004) COMS 4160, Lecture 25: Summary and Preview
Computer Graphics.
Chapter 10 Computer Graphics
Prof. Harriet Fell Spring 2007 Lecture 1 - January 8, 2007
So Far We have assumed that we know: The point The surface normal
CS5310 Graduate Computer Graphics
Ch2: Data Representation
History of computer graphics
Prof. Harriet Fell Spring 2007 Lecture 19 – February 22, 2007
Prof. Harriet Fell Spring 2007 Lecture 19 – February 22, 2007
Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007
Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007
Presentation transcript:

©College of Computer and Information Science, Northeastern UniversityOctober 19, CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2007 Lecture 1 - January 8, 2007

©College of Computer and Information Science, Northeastern UniversityOctober 19, Course Overview - Topics Emphasis on rendering realistic images. Fundamentals of 2- and 3- dimensional computer graphics –2-dimensional algorithms for drawing lines and curves, anti-aliasing, filling, and clipping –Using ray-tracing to render 3-dimensional scenes composed of spheres, polygons, quadric surfaces, and bi- cubic surfaces –Techniques for adding texture to surfaces using texture and bump maps, noise, and turbulence Other topics as time permits

©College of Computer and Information Science, Northeastern UniversityOctober 19, Sample Images

©College of Computer and Information Science, Northeastern UniversityOctober 19, Sample Images

©College of Computer and Information Science, Northeastern UniversityOctober 19, Sample Images

©College of Computer and Information Science, Northeastern UniversityOctober 19, Sample Images

©College of Computer and Information Science, Northeastern UniversityOctober 19, Sample Images

©College of Computer and Information Science, Northeastern UniversityOctober 19, Course Overview - Organization Texts: –Peter Shirley, et al. Fundamentals of Computer Graphics, 2nd Edition, A K Peters, 2005 –Alan Watt, 3D Computer Graphics, 3rd Edition, Addison Wesley, Grading –Assignment 0: 10% –Assignment 1: 15% –Assignment 2: 15% –Assignment 3: 10% –Assignment 4: 10% –Exam: 25% –Project and Presentation: 15%

©College of Computer and Information Science, Northeastern UniversityOctober 19, Early HistoryHistory Joseph-Marie Jacquard invented an automatic loom using punched cards to control patterns in the fabrics. The introduction of these looms caused the riots against the replacement of people by machines.loom 1941 First U.S. regular TV broadcast,TV broadcast 1st TV commercial (for Bulova watches) 1948 Transistors 1949 Williams tube (CRT storage tube)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Jacquard Loom From Wikipedia.org

©College of Computer and Information Science, Northeastern UniversityOctober 19, Early TV

©College of Computer and Information Science, Northeastern UniversityOctober 19, HistoryHistory – the 50s 1951 Graphics display, Whirlwind computerGraphics display, Whirlwind computer 1954 color TV 1955 Light Pen, SAGE- Lincoln LabLight Pen, SAGE- Lincoln Lab 1958 Graphics Console, TX-1 MIT 1958 John Whitney Sr. uses analog computer to make art

©College of Computer and Information Science, Northeastern UniversityOctober 19, Graphics display, Whirlwind computer

©College of Computer and Information Science, Northeastern UniversityOctober 19, SAGE

©College of Computer and Information Science, Northeastern UniversityOctober 19, HistoryHistory - the 60s 1961 Spacewars, 1st video game, Steve Russell, MIT for PDP-1Spacewars 1963 Sketchpad, Ivan Sutherland, MITSketchpad, Ivan Sutherland 1963 Mouse invented, Doug Englebart, SRI 1963 Roberts hidden line algorithm, MITRoberts hidden line algorithm 1965 Bresenham Algorithm for plotting lines, IBMBresenham Algorithm for plotting lines 1966 Odyssey, home video game, Ralph Baer,Odyssey –Sanders Assoc, is 1st consumer CG product 1967 Full-color, real-time, interactive flight simulator for NASA - Rod Rougelet, GE

©College of Computer and Information Science, Northeastern UniversityOctober 19, Spacewars

©College of Computer and Information Science, Northeastern UniversityOctober 19, Ivan Sutherland & Sketchpad System on TX-2 at MIT(1963)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Odyssey

©College of Computer and Information Science, Northeastern UniversityOctober 19, Roberts Hidden Line Algorithm Block scene (576 blocks)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Bresenham Line Algorithm (0, 0) (9, 7)

©College of Computer and Information Science, Northeastern UniversityOctober 19, HistoryHistory – the 70s 1970sUtah dominated - algorithm development 1970 Watkins algorithm for visible surfacesWatkins algorithm for visible surfaces 1970 Bezier free-form curve representationBezier free-form curve 1971 Gouraud shadingGouraud shading 1973 Principles of Interactive Computer Graphics (Newman and Sproull) 1974 Addressable cursor in a graphics display terminal - DEC VT z-buffer developed by Ed Catmull (Univ of Utah) 1975 Phong shadingPhong shading 1975 Fractals - Benoit Mandelbrot (IBM)Fractals 1978 Bump mapping, BlinnBump mapping 1979 George Lucas starts Lucasfilm –with Ed Catmull, Ralph Guggenheim, and Alvy Ray Smith

©College of Computer and Information Science, Northeastern UniversityOctober 19, Watkins Scan-Line Algorithm

©College of Computer and Information Science, Northeastern UniversityOctober 19, Bezier Curves

©College of Computer and Information Science, Northeastern UniversityOctober 19, Gouraud Shading

©College of Computer and Information Science, Northeastern UniversityOctober 19, Phong Shading

©College of Computer and Information Science, Northeastern UniversityOctober 19, Fractals

©College of Computer and Information Science, Northeastern UniversityOctober 19, Bump Map Bump Maps in PovRay

©College of Computer and Information Science, Northeastern UniversityOctober 19, HistoryHistory - the 80s 1980s Cheaper machines, memory - quest for realsim 1980 Ray Tracing, Turner Whitted, Bell LabsRay Tracing 1981 IBM introduces the first IBM PC (16 bit 8088 chip) 1982 Data Glove, Atari 1984 Macintosh computerMacintosh – introduced with Clio award winning commercial during Super Bowl 1985 Perlin NoisePerlin Noise 1986 GIF format (CompuServe) 1988 Who Framed Roger Rabbit live action & animationWho Framed Roger Rabbit

©College of Computer and Information Science, Northeastern UniversityOctober 19, Whitted Ray-Tracing

©College of Computer and Information Science, Northeastern UniversityOctober 19, Perlin Noise

©College of Computer and Information Science, Northeastern UniversityOctober 19, Who Framed Roger Rabbit

©College of Computer and Information Science, Northeastern UniversityOctober 19, HistoryHistory- the 90s 1990s Visualization, Multimedia, the Net 1991 JPEG/MPEG 1993 Myst, CyanMyst 1994 U.S. Patent to Pixar –for creating, manipulating and displaying images 1995 Toy Story, PixarToy Story 1995 Internet 2 unveiled 1997 DVD technology unveiled 1998 XML standard 1999 deaths

©College of Computer and Information Science, Northeastern UniversityOctober 19, Myst

©College of Computer and Information Science, Northeastern UniversityOctober 19, Toy Story

©College of Computer and Information Science, Northeastern UniversityOctober 19, Recent History 2000s Virtual Reality, Animation Reality 2001 Significant Movies –Final Fantasy, Square) –Monsters Inc, Pixar –Harry Potter, A.I., Lord of the Rings, Shrek, PDI –The Mummy, ILM –Tomb Raider, Cinesite –Jurassic Park III, Pearl Harbor,ILM –Planet of the Apes, Asylum 2001 Microsoft xBox and Nintendo Gamecube 2001, 2002, 2003 Lord of the RingsLord of the Rings

©College of Computer and Information Science, Northeastern UniversityOctober 19, Time for a Break

©College of Computer and Information Science, Northeastern UniversityOctober 19, Color

©College of Computer and Information Science, Northeastern UniversityOctober 19, Red, Green, and Blue Light

©College of Computer and Information Science, Northeastern UniversityOctober 19, Adding R, G, and B Values

©College of Computer and Information Science, Northeastern UniversityOctober 19, From the Hubble Hubble Site Link

©College of Computer and Information Science, Northeastern UniversityOctober 19, RGB Color Cube (1, 1, 1) (1, 1, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 1) (1, 0, 0)

©College of Computer and Information Science, Northeastern UniversityOctober 19, RGB Color Cube The Dark Side (0, 0, 0) (1, 1, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 1) (1, 0, 0)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Doug JacobsonDoug Jacobson's RGB Hex Triplet Color Chart

©College of Computer and Information Science, Northeastern UniversityOctober 19, Making Colors Darker (1, 0, 0) (0, 1, 0) (0, 0, 1) (1, 1, 0) (1, 0, 1) (1, 1, 0) (0, 0, 0) (.5, 0, 0) (0, 0,.5) (0,.5,.5) (.5, 0,.5) (.5,.5, 0) (0,.5, 0)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Getting Darker, Left to Right for (int b = 255; b >= 0; b--){ c = new Color(b, 0, 0); g.setPaint(c); g.fillRect(800+3*(255-b), 50, 3, 150); c = new Color(0, b, 0); g.setPaint(c); g.fillRect(800+3*(255-b), 200, 3, 150); c = new Color(0, 0, b); g.setPaint(c); g.fillRect(800+3*(255-b), 350, 3, 150); c = new Color(0, b, b); g.setPaint(c); g.fillRect(800+3*(255-b), 500, 3, 150); c = new Color(b, 0, b); g.setPaint(c); g.fillRect(800+3*(255-b), 650, 3, 150); c = new Color(b, b, 0); g.setPaint(c); g.fillRect(800+3*(255-b), 800, 3, 150); }

©College of Computer and Information Science, Northeastern UniversityOctober 19, Gamma Correction Generally, the displayed intensity is not linear in the input (0  a  1). dispIntensity = (maxIntensity) a  To find  –Find a that gives you.5 intensity –Solve.5 = a  –  = ln(.5) ln( a)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Gamma Correction Gamma half black half red (127, 0, 0)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Making Pale Colors (1, 0, 0) (0, 1, 0) (0, 0, 1) (1, 1, 0) (1, 0, 1) (1, 1, 0) (1, 1, 1) (1,.5,.5) (.5,.5, 1) (.5, 1, 1) (1,.5, 1) (1, 1,.5) (.5, 1,.5)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Getting Paler, Left to Right for (int w = 0; w < 256; w++){ c = new Color(255, w, w); g.setPaint(c); g.fillRect(3*w, 50, 3, 150); c = new Color(w, 255, w); g.setPaint(c); g.fillRect(3*w, 200, 3, 150); c = new Color(w, w, 255); g.setPaint(c); g.fillRect(3*w, 350, 3, 150); c = new Color(w, 255, 255); g.setPaint(c); g.fillRect(3*w, 500, 3, 150); c = new Color(255,w, 255); g.setPaint(c); g.fillRect(3*w, 650, 3, 150); c = new Color(255, 255, w); g.setPaint(c); g.fillRect(3*w, 800, 3, 150); }

©College of Computer and Information Science, Northeastern UniversityOctober 19, Portable Pixmap Format (ppm) A "magic number" for identifying the file type. A ppm file's magic number is the two characters "P3". Whitespace (blanks, TABs, CRs, LFs). A width, formatted as ASCII characters in decimal. Whitespace. A height, again in ASCII decimal. Whitespace. The maximum color value again in ASCII decimal. Whitespace. Width * height pixels, each 3 values between 0 and maximum value. –start at top-left corner; proceed in normal English reading order –three values for each pixel for red, green, and blue, resp. –0 means color is off; maximum value means color is maxxed out –characters from "#" to end-of-line are ignored (comments) –no line should be longer than 70 characters

©College of Computer and Information Science, Northeastern UniversityOctober 19, ppm Example P3 # feep.ppm

©College of Computer and Information Science, Northeastern UniversityOctober 19, private void saveImage() { String outFileName = “my.ppm"; File outFile = new File(outFileName); int clrR, clrG, clrB; try { PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outFile))); out.println("P3"); out.print(Integer.toString(xmax-xmin+1)); System.out.println(xmax-xmin+1); out.print(" "); out.println(Integer.toString(ymax-ymin+1)); System.out.println(ymax-ymin+1); out.println("255"); for (int y = ymin; y <= ymax; y++){ for (int x = xmin; x <= xmax; x++) { // compute clrR, clrG, clrB out.print(" "); out.print(clrR); out.print(" "); out.print(clrG); out.print(" "); out.println(clrB); } out.close(); } catch (IOException e) { System.out.println(e.toString()); }

©College of Computer and Information Science, Northeastern UniversityOctober 19, Math Basics (All Readings from Shirley) Sets and Mappings – 2.1 Quadratic Equations – 2.2 Trigonometry – 2.3 Vectors – 2.4 2D Parametric Curves – 2.6 3D Parametric Curves – 2.8 Linear Interpolation – 2.10 Triangles – 2.11

©College of Computer and Information Science, Northeastern UniversityOctober 19, Vectors A vector describes a length and a direction. a b a = b a zero length vector 1 a unit vector

©College of Computer and Information Science, Northeastern UniversityOctober 19, Vector Operations a a b b b+a -d c-d Vector Sum a -a c Vector Difference d

©College of Computer and Information Science, Northeastern UniversityOctober 19, Cartesian Coordinates Any two non-zero, non-parallel 2D vectors form a 2D basis. Any 2D vector can be written uniquely as a linear combination of two 2D basis vectors. x and y (or i and j) denote unit vectors parallel to the x-axis and y-axis. x and y form an orthonormal 2D basis. a = x a x + y a y a =( x a, y a ) or x, y and z form an orthonormal 3D basis. or a =(a x,a y )

©College of Computer and Information Science, Northeastern UniversityOctober 19, Vector Length Vector a =( x a, y a ) yaya xaxa ||a|| a

©College of Computer and Information Science, Northeastern UniversityOctober 19, Dot Product a =( x a, y a ) b =( x b, y b ) a  b = x a x b + y a y b a  b =  a    b  cos(  ) a b   x a =  a  cos(  +  ) x b =  b  cos(  ) y a =  a  sin(  +  ) y b =  b  sin(  )

©College of Computer and Information Science, Northeastern UniversityOctober 19, Projection a =( x a, y a ) b =( x b, y b ) a  b =  a    b  cos(  ) The length of the projection of a onto b is given by a b  abab

©College of Computer and Information Science, Northeastern UniversityOctober 19, D Vectors This all holds for 3D vectors too. a =( x a, y a, z a ) b =( x b, y b, z b ) a  b = x a x b + y a y b + z a z b a  b =  a    b  cos (  )

©College of Computer and Information Science, Northeastern UniversityOctober 19, Vector Cross Product axb a b  axb is perpendicular to a and b. Use the right hand rule to determine the direction of axb. Image from

©College of Computer and Information Science, Northeastern UniversityOctober 19, Cross Product and Area axb a b  a b  ||a|| ||a||x||b|| = area of the parallelogram.

©College of Computer and Information Science, Northeastern UniversityOctober 19, Computing the Cross Product

©College of Computer and Information Science, Northeastern UniversityOctober 19, Linear Interpolation LERP: /lerp/, vi.,n. –Quasi-acronym for Linear Interpolation, used as a verb or noun for the operation. “Bresenham's algorithm lerps incrementally between the two endpoints of the line.” p = (1 – t) a + t b = a + t(b – a) a b L tL (1-t)L

©College of Computer and Information Science, Northeastern UniversityOctober 19, b a L p = (1 – t) a + t b = a + t(b – a) t =.5 t = 1 t =.25 t =.75 t = 0

©College of Computer and Information Science, Northeastern UniversityOctober 19, If (x, y) is on the edge ab, (x, y) = (1 – t) a + t b = a + t(b – a). Similar formulas hold for points on the other edges. If (x, y) is in the triangle: (x, y) =  a +  b +  c  +  +  = 1 ( , ,  ) are the Barycentric coordinates of (x, y). Triangles a b c (x,y)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Triangles a b c b-a c-a p = a +  (b-a) +  (c-a)  = 0  = 1  = 2  = -1  = 0  = 1  = 2  = -1 Barycentric coordinates  = 1-  -  p = p( , ,  ) =  a +  b +  c  = 0 p = (1-  -  )a +  b +  c  = 1

©College of Computer and Information Science, Northeastern UniversityOctober 19, Computing Barycentric Coordinates a b c (x,y)

©College of Computer and Information Science, Northeastern UniversityOctober 19, Barycentric Coordinates as Areas a b c (x,y) where A is the area of the triangle.  +  +  = 1

©College of Computer and Information Science, Northeastern UniversityOctober 19, D Triangles b c (x,y,z) where A is the area of the triangle.  +  +  = 1 This all still works in 3D. a

©College of Computer and Information Science, Northeastern UniversityOctober 19, Assignment 0 You will choose a programming platform for the quarter and familiarize yourself with RGB color and the ppm format. In part, this assignment is to ensure that you have a method of submitting you work so that I can: –read the code –compile (or interpret) the code –run the code to produce a file in ppm format. Sample Program You will write your own 3D vector tools (e.g. as a JAVA class) that you will use for your later programming assignments.