Lecture Slide

Lecture Slide

Computer Graphics spring, 2013 Thursday, March 21, 13 Computer Graphics ‣ We’re interested in... • 3D computer graphics • Real-time rendering • Interactive applications Thursday, March 21, 13 3D Modeling Tools ‣ What do they do? • input: Your imagination • output: a 3d scene ‣ Simplest tool -- provides UI to put a triangle in the space ‣ Lots of ways to model various shapes + Instant visual feedback ‣ Blender, SketchUp, Maya, 3ds Max, ... Thursday, March 21, 13 3D Rendering ‣ Digital camera analogy • What are the differences? ‣ Inputs - scene description • (Geometric) objects with material (wood, plastic, gold,...) • Camera (location+orientation, lens,...) • Lights (location+orientation, types: sun, flashlight, fluorescent lamp,...) ‣ Output • 2D bitmap image Thursday, March 21, 13 3D Scene ‣ Usually represented as a scene graph ‣ Hierarchical structure (logical & spatial) ‣ File formats: pov, 3ds, blend, dae (COLLADA), max, ... Thursday, March 21, 13 Geometric Objects ‣ Properties? • Shapes, material, texture, ... ‣ How to represent their shapes? • (Smooth) surfaces, polygonal/triangular mesh, implicit representation, ... ‣ Case study: POV-Ray, Blender, OpenGL, ... ‣ Polygonal/triangular mesh • Requires special data structure • file formats: off, obj, x, ... Thursday, March 21, 13 Camera ‣ Properties? • Types - “projection” • Position & orientation ‣ Case study: POV-Ray, Blender, OpenGL, ... Thursday, March 21, 13 Lights ‣ Properties? • Types, color, ... • Position & orientation ‣ Case study: POV-Ray, Blender, OpenGL, ... ‣ Shading model • How to compute the shading? • OpenGL: Gouraud shading in fixed pipeline, but flexible now Thursday, March 21, 13 Rendering APIs ‣ High-level (scenegraph-based) • APIs to build a scene graph • Usually renders using low-level APIs internally • OpenSceneGraph, OpenSG, Java 3D, Open Inventor, ... ‣ Low-level • APIs to render a scene • OpenGL, DirectX • Hardware-accelerated Thursday, March 21, 13 Rendering Algorithms ‣ How to render a scene? Can we just “simulate” what happens to digital cameras? ‣ Major algorithms • Ray-casting, Ray-tracing (specular, transmissive, etc.), Radiosity (diffusive), Rasterization ‣ Minor algorithms • Scanline rendering, Micropolygon pipeline, Tile rendering Thursday, March 21, 13 Ray-casting ‣ Arthur Appel (1968) ‣ Image-order rendering algorithm ‣ Non-recursive --> No reflection, refraction, etc. ‣ Easily handles visibility, shadows & implicit objects ‣ Easily parallelizable ‣ May miss small objects ‣ Case study: Wolfenstein 3D, Volume ray-casting Thursday, March 21, 13 Ray-tracing ‣ Turner Whitted (1980) ‣ Recursive • Can simulate lots of effects -- reflection, refraction, scattering, etc. • When to stop? • Too slow ‣ Suitable for rendering transparent/shiny objects ‣ Similar pros/cons with ray-casting ‣ Usually coupled with other rendering algorithms Thursday, March 21, 13 Radiosity ‣ Goral et al. (1984) ‣ A “shading” algorithm ‣ Renders diffuse indirect lighting ‣ Viewpoint-independent --> Can be pre- computed ‣ Computed using FEM (Finite Element Method) Thursday, March 21, 13 Scanline Rendering ‣ Wylie et al. (1967) ‣ A VSD (visible surface determination) algorithm ‣ Used in Nintendo DS Thursday, March 21, 13 Rasterization ‣ Object-based rendering ‣ Direct illumination (local shading) only --> limitations? ‣ Easily parallelizable ‣ Real-time rendering -- OpenGL, DirectX, etc. Thursday, March 21, 13 Rasterization (cont’d) ‣ Input: points, lines, triangles ‣ Transformations: all affine ‣ Projections: orthographic/perspective ‣ Issues • Primitives outside view volume • Visibility • Parallelization ‣ Graphics pipeline Thursday, March 21, 13.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    16 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us