CS U540 Computer Graphics

17
March 19, 2022 1 ©College of Computer and Information Science, Northeastern University CS U540 Computer Graphics Prof. Harriet Fell Spring 2009 Lecture 4 - January 12, 2009

description

CS U540 Computer Graphics. Prof. Harriet Fell Spring 2009 Lecture 4 - January 12, 2009. Color. www.thestagecrew.com. Red , Green , and Blue Light. Adding R , G , and B Values. http://en.wikipedia.org/wiki/RGB. From the Hubble. Hubble Site Link. (0, 0, 1). (0, 1, 1). (1, 0, 1). - PowerPoint PPT Presentation

Transcript of CS U540 Computer Graphics

April 20, 2023 1©College of Computer and Information Science, Northeastern University

CS U540Computer Graphics

Prof. Harriet Fell

Spring 2009

Lecture 4 - January 12, 2009

April 20, 2023 2©College of Computer and Information Science, Northeastern University

Color

www.thestagecrew.com

April 20, 2023 3©College of Computer and Information Science, Northeastern University

Red, Green, and Blue Light

April 20, 2023 4©College of Computer and Information Science, Northeastern University

Adding R, G, and B Values

http://en.wikipedia.org/wiki/RGB

April 20, 2023 5©College of Computer and Information Science, Northeastern University

From the Hubble

Hubble Site Link

April 20, 2023 6©College of Computer and Information Science, Northeastern University

RGB Color Cube

(1, 1, 1)

(1, 1, 0)

(0, 0, 1)

(0, 1, 1)

(0, 1, 0)

(1, 0, 1)

(1, 0, 0)

April 20, 2023 7©College of Computer and Information Science, Northeastern University

RGB Color Cube The Dark Side

(0, 0, 0)

(1, 1, 0)

(0, 0, 1)

(1, 0, 1)

(1, 0, 0)

(0, 1, 1)

(0, 1, 0)

April 20, 2023 8©College of Computer and Information Science, Northeastern University

Doug Jacobson's RGB Hex Triplet Color Chart

April 20, 2023 9©College of Computer and Information Science, Northeastern University

Making Colors Darker

(1, 0, 0)

(0, 1, 0)

(0, 0, 1)

(0, 1, 1)

(1, 0, 1)

(1, 1, 0)

(0, 0, 0)

(0, 0, 0)

(0, 0, 0)

(0, 0, 0)

(0, 0, 0)

(0, 0, 0)

(.5, 0, 0)

(0, 0, .5)

(0, .5, .5)

(.5, 0, .5)

(.5, .5, 0)

(0, .5, 0)

April 20, 2023 10©College of Computer and Information Science, Northeastern University

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);

}

April 20, 2023 11©College of Computer and Information Science, Northeastern University

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)

April 20, 2023 12©College of Computer and Information Science, Northeastern University

Gamma Correction

• Gammahalf black half red (127, 0, 0)

April 20, 2023 13©College of Computer and Information Science, Northeastern University

Making Pale Colors

(1, 0, 0)

(0, 1, 0)

(0, 0, 1)

(0, 1, 1)

(1, 0, 1)

(1, 1, 0)

(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

(1, .5, .5)

(.5, .5, 1)

(.5, 1, 1)

(1, .5, 1)

(1, 1, .5)

(.5, 1, .5)

April 20, 2023 14©College of Computer and Information Science, Northeastern University

Getting Paler, Left to Rightfor (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);

}

April 20, 2023 15©College of Computer and Information Science, Northeastern University

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

April 20, 2023 16©College of Computer and Information Science, Northeastern University

ppm Example

P3# feep.ppm4 415 0 0 0 0 0 0 0 0 0 15 0 15 0 0 0 0 15 7 0 0 0 0 0 0 0 0 0 0 0 0 0 15 7 0 0 015 0 15 0 0 0 0 0 0 0 0 0

April 20, 2023 17©College of Computer and Information Science, Northeastern University

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, clrBout.print(" "); out.print(clrR);out.print(" "); out.print(clrG); out.print(" "); out.println(clrB);

}}out.close();

} catch (IOException e) {System.out.println(e.toString());

}}