Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cs 352: Interactive 2D and 3D Computer Graphics. Interactive Computer GraphicsChapter 1 - 2 This Class Interactive 2D and 3D Graphics Programming (with.

Similar presentations


Presentation on theme: "Cs 352: Interactive 2D and 3D Computer Graphics. Interactive Computer GraphicsChapter 1 - 2 This Class Interactive 2D and 3D Graphics Programming (with."— Presentation transcript:

1 Cs 352: Interactive 2D and 3D Computer Graphics

2 Interactive Computer GraphicsChapter This Class Interactive 2D and 3D Graphics Programming (with a taste of photorealistic graphics, image processing, and modeling) Top-down approach Course Information Syllabus Policies Platform Projects

3 Interactive Computer GraphicsChapter Aspects of Graphics Design vs. Programming Interactive vs. Photorealistic 2D vs. 3D Graphics vs. image processing vs. user interfaces

4 Kinds of Graphics Software Photoshop, Illustrator, etc. 3D Modeling (CAD, animation) Rendering (ray tracing, radiosity) Animation tools Graphics programming APIs (OpenGL, DirectX) Scene graph libraries Game engines Interactive Computer GraphicsChapter 1 - 4

5 Interactive Computer GraphicsChapter Comet Simulation COMET CRASH - Sandia supercomputer simulations of a one- kilometer comet entering Earth's atmosphere, approaching the ocean's surface, and impacting the ocean, deforming the ocean floor and creating a giant high-pressure steam explosion rising into the stratosphere. The explosion ejects comet vapor and water vapor into ballistic trajectories that spread around the globe. The New York City skyline is shown for scale.

6 Interactive Computer GraphicsChapter Ray-traced Image

7 Interactive Computer GraphicsChapter 1 - 7

8 Interactive Computer GraphicsChapter Intelligence Chart

9 Interactive Computer GraphicsChapter 1 - 9

10 Nvidia: Moore's Law is Dead, Multi-core Not Future Interactive Computer GraphicsChapter

11 History of Interactive Graphics Interactive Computer GraphicsChapter

12 Interactive Computer GraphicsChapter OpenGL OpenGL: a widely-used, open API for 3D graphics OpenGL Old, originally from Silicon Graphics (SGI) Low-level, procedural (vs. scene graph retained mode) Designed for speed, control over hardware Need hardware support for top performance Widely used for CAD, VR, visualization, flight simulators Managed by non-profit “Khronos Group” consortium Support All major graphics cards, platforms have support Mobile devices (iOS, Android) use an embedded version HTML5 has experimental WebGL support Bindings for JavaScript, Java, C#, Perl, Python, Ruby, Scheme, Visual Basic, Ada, …

13 Graphics Only OpenGL does not support windowing, interaction, UI, etc It must be used with another windowing system/library such as MS Windows—various Cocoa X11 Qt GLUT, GLFW HTML5 JavaScript? Interactive Computer GraphicsChapter

14 History GL (SGI), 1980s to early 1990s [reality engine?]reality engine OpenGL Architecture Review Board, 1992 Selected versions: 1.0, 1992 (Happy Twentieth birthday!)Twentieth birthday 1.3, 2001—better texture support 2.0, 2004—GLSL (GL Shading Language, user programmable vertex shaders) 3.0, 2008—plan: fundamental changes to the API—no longer state-based, requires use of GLSL 1.3. Compromise: old API deprecated (but still used) 4.1, 2010—new geometry control, shaders, OpenGL ES 2.0 compatibility 4.3, 4.4, 4.5 Interactive Computer GraphicsChapter

15 Interactive Computer GraphicsChapter

16 Refraction using vertex shaders Interactive Computer GraphicsChapter

17 OpenGL ES OpenGL ES (for Embedded Systems) is a subset of OpenGL for mobile phones, consoles, etc Common and Common Lite profiles (lite profiles are fixed-point only) Version 2.0 released in 2007 GLSL for shaders Supported in iOS, Android, Maemo, WebGL, Blackberry, WebOS… Version 3.0, 2012: texture compression, new version of GLSL ES, 32-bit floats, enhanced texturing Interactive Computer GraphicsChapter

18 OpenGL vs. proprietary OpenGL Older Has survived the Direct3D challenge and emerged as undisputed standard for 3D graphics programming (apart from Windows games) Used more for professional applications Mobile gaming is mostly on OpenGL ES Unreal, Unity, other game engines on OpenGL ES DirectX: MS only Used more for games Latest versions are good Metal (Apple) Interactive Computer GraphicsChapter

19 WebGL OpenGL 2.0 ES in your Web browser, no plugins needed! Supported by all major browsers except IE (Microsoft hates Web standards, OpenGL) Working group: Apple, Google, Mozilla, Opera (not Microsoft) Interactive Computer GraphicsChapter

20 Interactive Computer GraphicsChapter

21 Interactive Computer GraphicsChapter Other software we’ll use POV ray-tracer ImageMagick image manipulation library 3D Modeling: Google's SketchUp or Blender HTML5 Canvas element for 2D graphics The only cross-platform environment nowadays… Overview Three.js graphics library for WebGL

22 Interactive Computer GraphicsChapter Chapter 1: Graphics Systems and Models A Graphics System Processor Memory Frame Buffer  Display  Input Devices  Output Devices

23 Interactive Computer GraphicsChapter Graphics Architecture

24 Interactive Computer GraphicsChapter Images Array of pixels Red, Green, Blue May also have an alpha value (opacity)

25 Interactive Computer GraphicsChapter Pixels and the Frame Buffer Pixels: picture elements 3 values: RGB, or or values: RGBA (Alpha = opacity) Frame buffer Depth: bits per pixel May have 24, 32, 64, or flexible depth

26 Interactive Computer GraphicsChapter Display terms Scan line Resolution Horizontal and vertical re-trace Refresh, refresh rate Interlace NTSC, PAL, S-video, Composite, Component HDTV

27 Interactive Computer GraphicsChapter LCD Display An unpowered LCD layer changes polarization of light

28 Interactive Computer GraphicsChapter The Human Visual System Rods: night vision Cones: day vision Three types of cones, with different color sensitivity We model and render for its capabilities

29 Interactive Computer GraphicsChapter Spectral Sensitivity Color spectrum: 780 nm (blue)…350 nm (red)

30 Interactive Computer GraphicsChapter Graphics Paradigms Modeling Rendering Photo-realistic: Ray tracing Radiosity Interactive: Projection – camera model Transformations, clipping Shading Texture mapping Rasterization

31 Interactive Computer GraphicsChapter Ray Tracing

32 Interactive Computer GraphicsChapter Ray-traced blob

33 Interactive Computer GraphicsChapter How does Ray-Tracing work? Modeling Build a 3D model of the world Geometric primitives Light sources Material properties Simulate the bouncing of light rays Trace ray from eye through image pixel to see what it hits From there, bounce ray in reflection direction, towards light source, etc. Thus, model physics of emission, reflection, transmission, etc. (backwards)

34 Interactive Computer GraphicsChapter Modeling the World camera { location look_at angle 58 } light_source { color red 0.6 green 0.6 blue 0.6 } blob { threshold 0.5 sphere {, 1, 2 } cylinder {,, 0.5, 1 } pigment { color red 1 green 0 blue 0 } finish { ambient 0.2 diffuse 0.8 phong 1 } rotate }

35 Interactive Computer GraphicsChapter Ray thru pixel

36 Interactive Computer GraphicsChapter Flat blob

37 Interactive Computer GraphicsChapter Bounce toward lights

38 Interactive Computer GraphicsChapter Shadows

39 Interactive Computer GraphicsChapter Shaded blob

40 Interactive Computer GraphicsChapter Blob with Highlights

41 Interactive Computer GraphicsChapter Blob with ground plane

42 Interactive Computer GraphicsChapter Blob with transparency

43 Interactive Computer GraphicsChapter Blob with refraction

44 Interactive Computer GraphicsChapter Types of illumination Ambient – "light soup" that affects every point equally Diffuse – shading that depends on the angle of the surface to the light source Specular – 'highlights.' Falls off sharply away from the reflection direction Example: lighted teapotlighted teapot

45 Interactive Computer GraphicsChapter What are these made of?

46 Interactive Computer GraphicsChapter Material types Dielectrics (non-conductors): In body reflection, light penetrates the surface and is affected by material pigment Highlights are the color of the light source Examples: paint, plastic, wood, … Conductors (metals) No light penetrates the surface Highlight and "body" reflection are affected equally by the material Same color for diffuse and specular reflection

47 Interactive Computer GraphicsChapter Finishes

48 Interactive Computer GraphicsChapter Textures

49 Interactive Computer GraphicsChapter Surface (Ripples)

50 Interactive Computer GraphicsChapter POV-Ray Primitives

51 Interactive Computer GraphicsChapter Constructive Solid Geometry

52 Interactive Computer GraphicsChapter Sunsethf

53 Interactive Computer GraphicsChapter How to ray-trace… Transparency? Refraction? Reflection? Fog? Anti-aliasing?

54 Interactive Computer GraphicsChapter Drawbacks of ray tracing? Time: many rays are needed per pixel… Up to 25 rays through each pixel Each ray may bounce and split many times Each ray tested for intersection with many objects E.g. 1M pixels * 25 rays per pixel * 40 rays per ray tree * 1000 objects = 1 trillion object intersection tests… Too slow for real time?real time Hard lighting No soft shadows, inter-object diffusion, etc

55 Interactive Computer GraphicsChapter POV-Ray An excellent, free ray tracer: POV-RayPOV-Ray We'll use for a brief intro to ray tracing Runs on PC, Unix, Mac, Beowolf clusters, … Installed on the computers in the Unix lab You may wish to install on your own computer First "lab": make a ray-traced image of four different types of primitives, one each plastic, glass, metal, and mirrored, over checked floor

56 Beyond Ray Tracing Problems with ray tracing: hard shadows no color bleeding slow Interactive Computer GraphicsChapter

57 Interactive Computer GraphicsChapter Radiosity in POV-Ray

58 Interactive Computer GraphicsChapter Radiosity Treat each patch as reflector and emitter of light Each patch affects every other patch depending on distance, orientation, occlusion etc. Let light "bounce around" for a few iterations to compute the amount of light reaching a patch

59 Interactive Computer GraphicsChapter Radiosity image

60 Interactive Computer GraphicsChapter Radiosity - table

61 Image: Wikipedia Interactive Computer GraphicsChapter

62 Interactive Computer GraphicsChapter Radiosity example

63 Source: ACM Interactive Computer GraphicsChapter

64 Form factors We need to know the percentage of the light leaving one patch that reaches another (form factor). How to compute? Interactive Computer GraphicsChapter

65 Hemicube algorithm Hemicube algorithm for form factor computation: Put a hemicube around patch reference point Render an image in each of five directions Count pixels… Interactive Computer GraphicsChapter

66 Interactive Computer GraphicsChapter Radiosity summary Radiosity gives wonderful soft shading But even slower than ray tracing… Can't do reflection, refraction, specular highlights with radiosity Can combine ray tracing and radiosity for best of both worlds (and twice the time)

67 Interactive Computer GraphicsChapter Interactive techniques Ray tracing and radiosity are too slow We'll concentrate on interactive techniques What kind of rendering can be done quickly?

68 Interactive Computer GraphicsChapter Shutterbug - Orthographic

69 Interactive Computer GraphicsChapter Perspective

70 Interactive Computer GraphicsChapter Depth Cueing

71 Interactive Computer GraphicsChapter Depth Clipping

72 Interactive Computer GraphicsChapter Colored Edges

73 Interactive Computer GraphicsChapter Hidden line removal

74 Interactive Computer GraphicsChapter Hidden surface removal

75 Interactive Computer GraphicsChapter Flat shading

76 Interactive Computer GraphicsChapter Gouraud shading

77 Interactive Computer GraphicsChapter Gouraud/specular

78 Interactive Computer GraphicsChapter Gouraud/phong

79 Interactive Computer GraphicsChapter Curved surfaces

80 Interactive Computer GraphicsChapter Improved illumination

81 Interactive Computer GraphicsChapter Texture mapping

82 Interactive Computer GraphicsChapter Displacements, shadows

83 Interactive Computer GraphicsChapter Reflections

84 Interactive Computer GraphicsChapter Rendering pipeline Transformations Clipping Projection Rasterization (what is done where?)


Download ppt "Cs 352: Interactive 2D and 3D Computer Graphics. Interactive Computer GraphicsChapter 1 - 2 This Class Interactive 2D and 3D Graphics Programming (with."

Similar presentations


Ads by Google