# Advanced Texture-Mapping Curves and Curved Surfaces. Pre-Lecture Business. Texture Modes. Texture Modes. Review quiz

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Advanced Texture-Mapping Curves and Curved Surfaces Pre-ecture Business loadtexture example midterm handed bac, code posted (still) get going on pp3! more on texturing review quiz CS148: Intro to CG Instructor: Dan Morris TA: Sean Waler July 26, 2005 Texture Modes gltexenvi(g_texture_env, G_TEXTURE_ENV_MODE, mode); Tell G what to do with my textures Useless parameter always G_TEXTURE_ENV Tell G I m changing the texture mode untextured G_DECA G_MODUATE Texture Modes What happened to lego man s face? Holy crap I have no face! What does a texture map for a complex model loo lie? Review quiz What is shading? What is lighting? What is the difference between smooth shading and flat shading? Why do we interpolate texture coordinates in 3D instead of in 2D? 1

2 Outline for today Advanced texture mapping Texture coordinate generation Curves and curved surfaces The OpenG pipeline revisited Advanced Texture Mapping Billboarding (easiest) Bump Mapping (in between) Environment Mapping (hardest) Some form of any of these would be great extra credit for your pp s Billboarding Sometimes I can really get away with letting entire objects be 2D Objects that are far-away Objects that loo the same from everywhere, lie particles of dust An easy way to render 2D objects that loo nice is to just use a textured quad Billboarding So a good tric is to mae sure billboard objects always face the camera Assume we now the camera is at (cx,cy,cz) and my tree is at (tx,ty,tz) Assume we now how to render a quad facing +z How can I do this in OpenG? When does this approach brea down, even if I m still far away? I.e., when will my tree not loo right? tree camera Billboarding Examples Bump mapping (aa normal mapping) Instead of modulating the color at each pixel, what if we modulated the normal at each pixel? ots more detail without more vertices just texture texture + bump map 2 dumay.info

3 Bump mapping examples What does a bump map loo lie? Bump mapping in OpenG (overview) Store all the surface normals in one texture Store a vector from each vertex to our light in the other texture Using an OpenG extension, tell OpenG to dot these two textures, i.e. perform the diffuse lighting computation at each pixel gltexenvi(g_texture_env, G_TEXTURE_ENV_MODE, G_COMBINE_ARB); gltexenvi(g_texture_env, G_SOURCE0_RGB_ARB, G_TEXTURE); gltexenvi(g_texture_env, G_COMBINE_RGB_ARB, G_DOT3_RGB_ARB); gltexenvi(g_texture_env, G_SOURCE1_RGB_ARB, G_PREVIOUS_ARB); Why does bump mapping come with a big performance penalty? Environment Mapping Shiny objects should reflect light from the objects around them and act lie mini-mirrors OpenG lighting can t do this In fact OpenG lighting ignores all other objects in the scene when it lights each vertex But we can approximate this with textures Environment Mapping: Building a Texture Imagine putting my OpenG camera at the position of an object and taing a panoramic picture of the world, then storing the result in a texture This really means rendering a few times with the camera pointed in different directions 1D environment map of a 2D scene 2D environment map of a 3D scene Environment Mapping: Generating Texture Coordinates Now imagine that I assign texture coordinates to my object by just subtracting the object center from each vertex position I.e., each texture coordinate tells me which way this vertex loos my object my object texture coordinates 3 dumay.info

4 Environment Mapping: The Result If I get the mapping right, this will let me paste a picture of the environment on my object Environment Mapping: imitations Why is it hard to do this in realtime? In practice, static environment maps are often used and loo pretty good Environment Mapping: Relighting Can also capture real panoramic pictures of the world and use them to re-light virtual objects Often done by photographing a mirrored ball Outline for today Advanced texture mapping Texture coordinate generation Curves and curved surfaces The OpenG pipeline revisited Texture Coordinate Generation Where did all these texture coordinates come from? Generally part of the modeling process: textures are built to line up with the texcoords on one specific object Texture Coordinate Generation In general, mapping a flat surface to a 3-D object is difficult Some objects lie cylinders have a natural mapping, because you can wrap a flat sheet around them I.e. if I gave you a piece of wrapping paper and told you to paste it onto a cylinder it would be pretty straightforward What tools are available to modelers to assign texture coordinates to an object? 4 dumay.info

5 Texture Coordinate Generation Some objects lie spheres will always cause distortion when wrapped with a texture I.e. if I gave you a piece of wrapping paper and told you to paste it onto a bowling ball, you would run into problems Texture Coordinate Generation In general, modeling programs now how to generate textures in small patches that fit well Texture Coordinate Generation Modeling programs usually offer various tools for generating texture coordinates: planar cylindrical spherical shrin-wrap box face TexGen in OpenG Usually your texture coordinates come from a model file or are generated explicitly But OpenG can also generate texture coordinates on-the-fly glenable(g_texture_gen_t); gltexgenf(g_t, G_TEXTURE_GEN_MODE, G_SPHERE_MAP); glenable(g_texture_gen_s); gltexgenf(g_s, G_TEXTURE_GEN_MODE, G_SPHERE_MAP); now whenever I send vertices to OpenG, it will generate sphere map coordinates for me. When might I want to do this (something we taled about earlier today)? Projective Textures A real strength of using OpenG s texture generation is that it can generate planar texture coordinates on a plane that faces the eye or faces some point This lets us do projective texturing: Outline for today Advanced texture mapping Texture coordinate generation Curves and curved surfaces The OpenG pipeline revisited 5 dumay.info

6 Curves and Curved Surfaces Bezier Curves B-Splines Bezier Surfaces Why do we need more curves? We taled about ruled surfaces, surfaces of revolution, quadrics, etc. Most real curved objects can t be built from these simple primitives Control Points The most common approach to defining curves is to specify a set of control points: my curve should go somewhere near these points A mathematical function or algorithm can automatically generate the curve based on the control points Tae One: inear Interpolation et s generate a line segment between p0 and p1, parameterized by t on the interval [0,1] p(t) = (1-t)p 0 + (t)p 1 p0 p(0.5) We could use this to interpolate lots of points if we wanted to p1 Why do we need fancier methods? de Casteljau s Algorithm I want to generate a curve controlled by three points. We ll parameterize on t = [0,1] To find p(t), interpolate between p0 and p1, and interpolate between p1 and p2 Then interpolate between those two points to find p(t) Bezier Curves If we do this for lots of t values, we get a smooth curve: p 0 (0.3) p0 p(0.0) p1 p(0.3) p 1 (0.3) p2 p(1.0) This is called a Bezier curve, because Monsieur Bezier developed the algebraic form of the same curve that de Casteljau generated 6

7 Bezier Curves: Closed Form What s the closed-form expression for p(t)? For our curve with only three points: p 0 (t) = (1-t)p 0 + (t)p 1 p 1 (t) = (1-t)p 1 + (t)p 2 p(t) = (1-t)*p 0 (t) + t*p 1 (t) p(t) = (1-t) 2 * p 0 + 2t(1-t) * p 1 + t 2 * p 2 This curve is of degree 2 (a parabola) We could do the same math for any degree (any number of control points) Bezier Curves: Bernstein Form Fortunately someone else already did that math for us For a Bezier curve with control points p 0, p 1, p 2, p, the Bezier curve is: p( t) = = 0 B (t) is a Bernstein polynomial: p B ( t) B ( t) = (1 t) * t B-polynomials are blending functions The closed form expression again: p( t) = = 0 p B The Bezier curve is a blend of the control points Bernstein polynomials control how much weight each control point gets; we call them blending functions There are lots of different blending functions out there how did the Bernstein functions get to be so popular? ( t) Nice properties of Bezier curves Endpoint interpolation: A Bezier curve always passes through the first and last control points Transformation invariance: I can transform the control points and the curve will transform correctly Convex hull preservation: Bezier curves stay within the convex hull of the control points Smoothness at endpoints: The slope of the curve at an endpoint is the same as the slope of the last control segment Cubic Bezier functions are particularly popular Bezier curves in OpenG [bezcurve.cpp] OpenG evaluators tae t values and control points and generate vertices for you: // G, when I tell you to, evaluate a Bezier curve // with order N and these control points glmap1f(g_map1_vertex_3, 0, 1, 3, N, controlpoints); // G, please generate a vertex for the value t, using // the Bezier curve I told you about previously glevalcoord1f(t); // G, please generate 30 points on my curve from // t = 0 to t = 1 and draw them glmapgrid1f(30, 0.0, 1.0); glevalmesh1(g_ine_strip, 0, 30); ess-than-nice properties of Bezier curves Global control: Moving any point has an effect on the entire curve Complexity: Typical curves may have hundreds of control points, and evaluating high-degree Bezier curves is impractical How can we get all the nice properties of Bezier curves with local control and low complexity if I have lots of control points? 7

8 An aside: curve continuity Cubic B-splines A curve or surface is said to be C n continuous at a point t if its n th derivative at that point is continuous not c 0 continuous Piecewise approximations of cubic polynomial functions with C 0, C 1, and C 2 continuity Translation: stitch together a bunch of cubics without weird artifacts at the joints c 0 continuous not c 1 continuous c 1 continuous hard to tell about higher orders Cubic B-splines: The Big Picture Segments of the curve are influenced by four control points p0 p1 p2 p3 p4 First segment: cubic curve using p0, p1, p2, p3 Next segment: cubic curve using p1, p2, p3, p4 etc p5 p6 Cubic B-splines: The Math [bspline.cpp] Represent each segment as a standard cubic: x(t) = a 3 t 3 + a 2 t 2 + a 1 t + a 0 y(t) = b 3 t 3 + b 2 t 2 + b 1 t + b 0 What are the coefficients? They should represent the control points somehow... After much derivation, we would get a common formula that gives nice cubics: a 3 = (-x i-1 + 3x i -3x i+1 + x i+2 ) / 6 a 2 = (x i-1-2x i + x i+1 ) / 2 a 1 = (-x i-1 + x i+1 ) / 2 a 0 = (x i-1 + 4x i + x i+1 ) / 6 x i-1 x i+2 are the four points that control this segment Cubic B-splines: Nice Properties ocal Control Moving or adding a control point doesn t affect the whole curve ow degree Cubics are easy to compute and are used to describe many complex curves All the nice properties of Bezier curves B-splines: imitations Not guaranteed to pass through any of the control points (even the first and the last) Still can t express all shapes (e.g. circles) We ve only taled about uniform B splines If there are 5 control cubics, each cubic determines 1/5 of the overall curve We ve only taled about non-rational B-splines If we put these in Bernstein form, our blending functions would loo a lot lie the Bezier blending functions We can fix the above problems with non-uniform B-splines: arbitrary influence regions for each point rational B-splines: blending functions are ratios of polynomials The state of the art in OpenG curves is NURBS (an important buzzword): non-uniform rational B-splines See your textboo for more information 8

9 Review Quiz (candy for correctness and brevity) What is texture mapping? What is billboarding? What is bump mapping? Why not use bump mapping all the time? What is environment mapping? Why not use environment mapping all the time? Why do we usually define curves with control points instead of with lots of vertices? What s a Bezier curve? What s a B-spline? What advantages do B-splines have over Bezier curves? Going from curves to surfaces Everything we ve learned in 1D scales nicely to 2D (from lines to surfaces) A Bezier patch is the 2D cousin of a Bezier curve For a Bezier patch, we specify a grid of control points that we want the surface to loo lie Going from curves to surfaces To find a point p(s,t) on a Bezier patch: Generate the points p(s) for each of the four curves along one axis Use the four resulting points to as a new Bezier curve, and generate the point p(t) along that curve Going from curves to surfaces This was our Bezier curve: p( t) = p B ( t) = 0 Now let the control points themselves be functions of another variable: p( s, t) = = 0 p ( s) B ( t) Specifically, let those functions be Bezier curves: p ( s) = M j= 0 p M j, B j ( s) This gives us the function for a Bezier patch: If I just new how to evaluate p(u,v), how could I render a Bezier patch in OpenG? p( s, t) = M j= 0 = 0 p j, B M j ( s) B ( t) Connecting Bezier patches Bezier and B-spline surfaces: Examples Just as we did with curves, we ll often build complex surfaces by piecing together Bezier patches or B-spline patches Continuity is not guaranteed with Bezier patches it s often up to the designer or the modeling software to mae sure that corresponding points have the same positions and derivatives 9

10 Bezier surfaces in OpenG [bezmesh.cpp] OpenG evaluators tae u and v values and control points and generate vertices for you: // G, when I tell you to, evaluate a Bezier surface // with order N and these control points glmap2f(g_map2_vertex_3, 0, 1, 3, 4, 0, 1, 12, 4, controlpoints); // G, please generate a vertex for the value t, using // the Bezier curve I told you about previously glevalcoord2f(s,t); Outline for today Advanced texture mapping Texture coordinate generation Curves and curved surfaces The OpenG pipeline revisited // G, please generate 400 points on my surface from // u = 0 to u = 1 and v = 0 to v = 1 and draw them glmapgrid2f(20, 0.0, 1.0, 20, 0.0, 1.0); glevalmesh2(g_fi, 0, 20, 0, 20); Terminology: fragment The OpenG Pipeline Revisited A fragment is an lie a baby pixel that might or might not grow up to be a pixel (appear in the framebuffer) vertex data evaluators per-vertex operations Fragments are the output of the rasterizer display lists vertex buffers clipping primitive type Why might a fragment generated by the rasterizer not appear in the framebuffer? rasterization What data does OpenG store with each fragment? pixel data texture memory per-fragment operations framebuffer Next Time Selection Transparency 10

### Shape Representation Basic problem We make pictures of things How do we describe those things? Many of those things are shapes Other things include

Shape Representation Basic problem We make pictures of things How do we describe those things? Many of those things are shapes Other things include motion, behavior Graphics is a form of simulation and

### CSE 167: Introduction to Computer Graphics Lecture #13: Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017

CSE 167: Introduction to Computer Graphics Lecture #13: Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 4 due Monday Nov 27 at 2pm Next Tuesday:

### Hidden Surface Elimination Raytracing. Pre-lecture business. Outline for today. Review Quiz. Image-Space vs. Object-Space

Hidden Surface Elimination Raytracing Pre-lecture business Get going on pp4 Submit exam questions by Sunday CS148: Intro to CG Instructor: Dan Morris TA: Sean Walker August 2, 2005 Remote folks: let us

### Intro to Modeling Modeling in 3D

Intro to Modeling Modeling in 3D Polygon sets can approximate more complex shapes as discretized surfaces 2 1 2 3 Curve surfaces in 3D Sphere, ellipsoids, etc Curved Surfaces Modeling in 3D ) ( 2 2 2 2

### Bezier Curves, B-Splines, NURBS

Bezier Curves, B-Splines, NURBS Example Application: Font Design and Display Curved objects are everywhere There is always need for: mathematical fidelity high precision artistic freedom and flexibility

### Curves and Surfaces 1

Curves and Surfaces 1 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized Modeling Techniques 2 The Teapot 3 Representing

### CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016 Announcements Project 3 due tomorrow Midterm 2 next

### Curves & Surfaces. MIT EECS 6.837, Durand and Cutler

Curves & Surfaces Schedule Sunday October 5 th, * 3-5 PM * Review Session for Quiz 1 Extra Office Hours on Monday Tuesday October 7 th : Quiz 1: In class 1 hand-written 8.5x11 sheet of notes allowed Wednesday

### An introduction to interpolation and splines

An introduction to interpolation and splines Kenneth H. Carpenter, EECE KSU November 22, 1999 revised November 20, 2001, April 24, 2002, April 14, 2004 1 Introduction Suppose one wishes to draw a curve

### Curves and Surfaces Computer Graphics I Lecture 9

15-462 Computer Graphics I Lecture 9 Curves and Surfaces Parametric Representations Cubic Polynomial Forms Hermite Curves Bezier Curves and Surfaces [Angel 10.1-10.6] February 19, 2002 Frank Pfenning Carnegie

### Computergrafik. Matthias Zwicker. Herbst 2010

Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling Piecewise Bézier curves Each segment

### Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Computergrafik Matthias Zwicker Universität Bern Herbst 2016 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 2 Piecewise Bézier curves Each

### Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

Fall 2014 CSCI 420: Computer Graphics 4.2 Splines Hao Li http://cs420.hao-li.com 1 Roller coaster Next programming assignment involves creating a 3D roller coaster animation We must model the 3D curve

### Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Learn the basic design of a graphics system Introduce

### Direct Rendering of Trimmed NURBS Surfaces

Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended

### Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification

Last Time? Adjacency Data Structures Curves & Surfaces Geometric & topologic information Dynamic allocation Efficiency of access Mesh Simplification edge collapse/vertex split geomorphs progressive transmission

### graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

### Introduction to Geometry. Computer Graphics CMU /15-662

Introduction to Geometry Computer Graphics CMU 15-462/15-662 Assignment 2: 3D Modeling You will be able to create your own models (This mesh was created in Scotty3D in about 5 minutes... you can do much

### Representing Curves Part II. Foley & Van Dam, Chapter 11

Representing Curves Part II Foley & Van Dam, Chapter 11 Representing Curves Polynomial Splines Bezier Curves Cardinal Splines Uniform, non rational B-Splines Drawing Curves Applications of Bezier splines

### 8 Project # 2: Bézier curves

8 Project # 2: Bézier curves Let s say that we are given two points, for example the points (1, 1) and (5, 4) shown in Figure 1. The objective of linear interpolation is to define a linear function that

### LECTURE #6. Geometric Modelling for Engineering Applications. Geometric modeling for engineering applications

LECTURE #6 Geometric modeling for engineering applications Geometric Modelling for Engineering Applications Introduction to modeling Geometric modeling Curve representation Hermite curve Bezier curve B-spline

### Curves and Curved Surfaces. Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006

Curves and Curved Surfaces Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006 Outline for today Summary of Bézier curves Piecewise-cubic curves, B-splines Surface

### COMP environment mapping Mar. 12, r = 2n(n v) v

Rendering mirror surfaces The next texture mapping method assumes we have a mirror surface, or at least a reflectance function that contains a mirror component. Examples might be a car window or hood,

### Outline. The de Casteljau Algorithm. Properties of Piecewise Linear Interpolations. Recall: Linear Interpolation

CS 430/585 Computer Graphics I Curve Drawing Algorithms Week 4, Lecture 8 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel

### Textures and UV Mapping in Blender

Textures and UV Mapping in Blender Categories : Uncategorised Date : 21st November 2017 1 / 25 (See below for an introduction to UV maps and unwrapping) Jim s Notes regarding Blender objects, the UV Editor

### Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?

EF432 Introduction to spagetti and meatballs CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~karan/courses/418/ Instructors: L0101, W 12-2pm

### 1 of 8 11/25/ :42 PM

1 of 8 11/25/2008 12:42 PM ART 484 - UV Mapping a Suitcase This page is designed as a supplement to lectures. It is not intended to be a stand alone tutorial. The task is to recreate this old suitcase.

### MA 323 Geometric Modelling Course Notes: Day 21 Three Dimensional Bezier Curves, Projections and Rational Bezier Curves

MA 323 Geometric Modelling Course Notes: Day 21 Three Dimensional Bezier Curves, Projections and Rational Bezier Curves David L. Finn Over the next few days, we will be looking at extensions of Bezier

### Computer Graphics. Lecture 9 Environment mapping, Mirroring

Computer Graphics Lecture 9 Environment mapping, Mirroring Today Environment Mapping Introduction Cubic mapping Sphere mapping refractive mapping Mirroring Introduction reflection first stencil buffer

### Bezier Curves. An Introduction. Detlef Reimers

Bezier Curves An Introduction Detlef Reimers detlefreimers@gmx.de http://detlefreimers.de September 1, 2011 Chapter 1 Bezier Curve Basics 1.1 Linear Interpolation This section will give you a basic introduction

### Spline Surfaces, Subdivision Surfaces

CS-C3100 Computer Graphics Spline Surfaces, Subdivision Surfaces vectorportal.com Trivia Assignment 1 due this Sunday! Feedback on the starter code, difficulty, etc., much appreciated Put in your README

### Drawing Fast The Graphics Pipeline

Drawing Fast The Graphics Pipeline CS559 Fall 2016 Lectures 10 & 11 October 10th & 12th, 2016 1. Put a 3D primitive in the World Modeling 2. Figure out what color it should be 3. Position relative to the

### Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th

Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th 1. a. Show that the following sequences commute: i. A rotation and a uniform scaling ii. Two rotations about the same axis iii. Two

### CS 450: COMPUTER GRAPHICS RASTERIZING LINES SPRING 2016 DR. MICHAEL J. REALE

CS 45: COMPUTER GRAPHICS RASTERIZING LINES SPRING 6 DR. MICHAEL J. REALE OBJECT-ORDER RENDERING We going to start on how we will perform object-order rendering Object-order rendering Go through each OBJECT

### Bonus Ch. 1. Subdivisional Modeling. Understanding Sub-Ds

Bonus Ch. 1 Subdivisional Modeling Throughout this book, you ve used the modo toolset to create various objects. Some objects included the use of subdivisional surfaces, and some did not. But I ve yet

### Introduction to 3D Graphics

Graphics Without Polygons Volume Rendering May 11, 2010 So Far Volumetric Rendering Techniques Misc. So Far Extended the Fixed Function Pipeline with a Programmable Pipeline Programming the pipeline is

### Computer Graphics. Curves and Surfaces. Hermite/Bezier Curves, (B-)Splines, and NURBS. By Ulf Assarsson

Computer Graphics Curves and Surfaces Hermite/Bezier Curves, (B-)Splines, and NURBS By Ulf Assarsson Most of the material is originally made by Edward Angel and is adapted to this course by Ulf Assarsson.

### C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image

### Texture Mapping. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science

Texture Mapping CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce Mapping Methods - Texture Mapping - Environment Mapping - Bump Mapping Consider

### OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL

OpenGL: Open Graphics Library Introduction to OpenGL Part II CS 351-50 Graphics API ( Application Programming Interface) Software library Layer between programmer and graphics hardware (and other software

### B-Splines and NURBS Week 5, Lecture 9

CS 430/585 Computer Graphics I B-Splines an NURBS Week 5, Lecture 9 Davi Breen, William Regli an Maxim Peysakhov Geometric an Intelligent Computing Laboratory Department of Computer Science Drexel University

### CMSC 435/634: Introduction to Graphics

CMSC 435/634: Introduction to Graphics Final Exam December 16, 2002 Instructions: Clearly write your name on this sheet. Answer each problem in the space provided. If you need extra space, write on extra

### Introduction. What s New in This Edition

Introduction Welcome to the fourth edition of the OpenGL SuperBible. For more than ten years, we have striven to provide the world s best introduction to not only OpenGL, but 3D graphics programming in

### MA 323 Geometric Modelling Course Notes: Day 14 Properties of Bezier Curves

MA 323 Geometric Modelling Course Notes: Day 14 Properties of Bezier Curves David L. Finn In this section, we discuss the geometric properties of Bezier curves. These properties are either implied directly

### Curves and Surfaces 2

Curves and Surfaces 2 Computer Graphics Lecture 17 Taku Komura Today More about Bezier and Bsplines de Casteljau s algorithm BSpline : General form de Boor s algorithm Knot insertion NURBS Subdivision

### Triangle Rasterization

Triangle Rasterization Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/07/07 1 From last time Lines and planes Culling View frustum culling Back-face culling Occlusion culling

Mathematical Tools in Computer Graphics with C# Implementations by Hardy Alexandre, Willi-Hans Steeb, World Scientific Publishing Company, Incorporated, 2008 Table of Contents List of Figures Notation

### Rasterization. COMP 575/770 Spring 2013

Rasterization COMP 575/770 Spring 2013 The Rasterization Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to

### CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project

### COMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg

COMPUTER AIDED GEOMETRIC DESIGN Thomas W. Sederberg January 31, 2011 ii T. W. Sederberg iii Preface This semester is the 24 th time I have taught a course at Brigham Young University titled, Computer Aided

### Volume Shadows Tutorial Nuclear / the Lab

Volume Shadows Tutorial Nuclear / the Lab Introduction As you probably know the most popular rendering technique, when speed is more important than quality (i.e. realtime rendering), is polygon rasterization.

### ECE 600, Dr. Farag, Summer 09

ECE 6 Summer29 Course Supplements. Lecture 4 Curves and Surfaces Aly A. Farag University of Louisville Acknowledgements: Help with these slides were provided by Shireen Elhabian A smile is a curve that

### Surface Rendering. Surface Rendering

Surface Rendering Surface Rendering Introduce Mapping Methods - Texture Mapping - Environmental Mapping - Bump Mapping Go over strategies for - Forward vs backward mapping 2 1 The Limits of Geometric Modeling

### - Rasterization. Geometry. Scan Conversion. Rasterization

Computer Graphics - The graphics pipeline - Geometry Modelview Geometry Processing Lighting Perspective Clipping Scan Conversion Texturing Fragment Tests Blending Framebuffer Fragment Processing - So far,

### CS 431/636 Advanced Rendering Techniques

CS 431/636 Advanced Rendering Techniques Dr. David Breen Matheson 308 Thursday 6PM 8:50PM Presentation 7 5/23/06 Questions from Last Time? Hall Shading Model Shadows Reflections Refractions Slide Credits

Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

### Clipping. CSC 7443: Scientific Information Visualization

Clipping Clipping to See Inside Obscuring critical information contained in a volume data Contour displays show only exterior visible surfaces Isosurfaces can hide other isosurfaces Other displays can

### Drawing hypergraphs using NURBS curves

Drawing hypergraphs using NURBS curves Ronny Bergmann Institute of Mathematics University of Lu beck presentation at the Kolloquium der Institute fu r Mathematik und Informatik November 25th, 2009 Content

### Computer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling

Computer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling Downloaded from :www.comp.dit.ie/bmacnamee/materials/graphics/006- Contents In today s lecture we ll have a loo at:

### Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather

### 3D shapes types and properties

3D shapes types and properties 1 How do 3D shapes differ from 2D shapes? Imagine you re giving an explanation to a younger child. What would you say and/or draw? Remember the surfaces of a 3D shape are

### Shaders. Slide credit to Prof. Zwicker

Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

Geometric Entities for Pilot3D Copyright 2001 by New Wave Systems, Inc. All Rights Reserved Introduction on Geometric Entities for Pilot3D The best way to develop a good understanding of any Computer-Aided

### CS GAME PROGRAMMING Question bank

CS6006 - GAME PROGRAMMING Question bank Part A Unit I 1. List the different types of coordinate systems. 2. What is ray tracing? Mention some applications of ray tracing. 3. Discuss the stages involved

### Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

### CGS 3220 Lecture 17 Subdivision Surfaces

CGS 3220 Lecture 17 Subdivision Surfaces Introduction to Computer Aided Modeling Instructor: Brent Rossen Overview Converting from polygons to subdivision surfaces (sub-d) Modeling with sub-d using polygon

### Shading Languages. Seminar Computer Graphics. Markus Kummerer

Shading Languages Markus Kummerer ABSTRACT Shading Languages provide a highly flexible approach for creating visual structures in computer imagery. The RenderMan Interface provides an API for scene description,

### Texture Mapping Part 1

Texture Mapping Part 1 The Quest for Visual Realism Why Texture Map? How to do it How to do it right Spilling the beans Assignment #3 Lecture 17 Comp 236 Spring 2005 3/21/2005 Lecture 17 2 Decal Textures

### Rasterization Overview

Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer

### More Texture Mapping. Texture Mapping 1/46

More Texture Mapping Texture Mapping 1/46 Perturbing Normals Texture Mapping 2/46 Perturbing Normals Instead of fetching a texture for color, fetch a new perturbed normal vector Creates the appearance

### Beginning Direct3D Game Programming: 1. The History of Direct3D Graphics

Beginning Direct3D Game Programming: 1. The History of Direct3D Graphics jintaeks@gmail.com Division of Digital Contents, DongSeo University. April 2016 Long time ago Before Windows, DOS was the most popular

### CSE 167: Lecture #8: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Introduction to Computer Graphics Lecture #8: GLSL Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #4 due Friday, November 2 nd Introduction:

### Lecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Lecture 13: Reyes Architecture and Implementation Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) A gallery of images rendered using Reyes Image credit: Lucasfilm (Adventures

### Shaders (some slides taken from David M. course)

Shaders (some slides taken from David M. course) Doron Nussbaum Doron Nussbaum COMP 3501 - Shaders 1 Traditional Rendering Pipeline Traditional pipeline (older graphics cards) restricts developer to texture

### Triangle meshes I. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2017

Triangle meshes I CS 4620 Lecture 2 2017 Steve Marschner 1 spheres Andrzej Barabasz approximate sphere Rineau & Yvinec CGAL manual 2017 Steve Marschner 2 finite element analysis PATRIOT Engineering 2017

### Rasterization. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 16

Rasterization CS 4620 Lecture 16 1 Announcements A3 due on Thu Will send mail about grading once finalized 2 Pipeline overview you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX

### CS Exam 1 Review Problems Fall 2017

CS 45500 Exam 1 Review Problems Fall 2017 1. What is a FrameBuffer data structure? What does it contain? What does it represent? How is it used in a graphics rendering pipeline? 2. What is a Scene data

### Could you make the XNA functions yourself?

1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which

### Triangle meshes I. CS 4620 Lecture 2

Triangle meshes I CS 4620 Lecture 2 2014 Steve Marschner 1 spheres Andrzej Barabasz approximate sphere Rineau & Yvinec CGAL manual 2014 Steve Marschner 2 finite element analysis PATRIOT Engineering 2014

### Animation & Rendering

7M836 Animation & Rendering Introduction, color, raster graphics, modeling, transformations Arjan Kok, Kees Huizing, Huub van de Wetering h.v.d.wetering@tue.nl 1 Purpose Understand 3D computer graphics

### WebGL and GLSL Basics. CS559 Fall 2015 Lecture 10 October 6, 2015

WebGL and GLSL Basics CS559 Fall 2015 Lecture 10 October 6, 2015 Last time Hardware Rasterization For each point: Compute barycentric coords Decide if in or out.7,.7, -.4 1.1, 0, -.1.9,.05,.05.33,.33,.33

### CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo)

CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) www.vucybarien.com Question No: 1 What are the two focusing methods in CRT? Explain briefly. Page no : 26 1. Electrostatic focusing

### CREATING AND USING NORMAL MAPS - A Tutorial

CREATING AND USING NORMAL MAPS - A Tutorial Introduction In the last 10 years or so we ve seen lots of video games released that use low poly count models for the game play and then tell the story using

### 4) Finish the spline here. To complete the spline, double click the last point or select the spline tool again.

1) Select the line tool 3) Move the cursor along the X direction (be careful to stay on the X axis alignment so that the line is perpendicular) and click for the second point of the line. Type 0.5 for

### Maya 2014 NURBS Modeling Tutorial Airship

Maya 2014 NURBS Modeling Tutorial Airship Airships have captured human imagination for centuries and are featured prominently in books, film and video games. As an introduction to modeling with NURBS (non

### Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Rendering Algorithms: Real-time indirect illumination Spring 2010 Matthias Zwicker Today Real-time indirect illumination Ray tracing vs. Rasterization Screen space techniques Visibility & shadows Instant

### Representing Graphical Data

Representing Graphical Data Chapman & Chapman, chapters 3,4,5 Richardson 1 Graphics in IT82 What does computer graphics cover? IT82 Input, output, and representation of graphical data Creation of graphics

### Mali Demos: Behind the Pixels. Stacy Smith

Mali Demos: Behind the Pixels Stacy Smith Mali Graphics: Behind the demos Mali Demo Team: Doug Day Stacy Smith (Me) Sylwester Bala Roberto Lopez Mendez PHOTOGRAPH UNAVAILABLE These days I spend more time

### Methodology for Lecture. Importance of Lighting. Outline. Shading Models. Brief primer on Color. Foundations of Computer Graphics (Spring 2010)

Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 11: OpenGL 3 http://inst.eecs.berkeley.edu/~cs184 Methodology for Lecture Lecture deals with lighting (teapot shaded as in HW1) Some Nate

### Surfaces for CAGD. FSP Tutorial. FSP-Seminar, Graz, November

Surfaces for CAGD FSP Tutorial FSP-Seminar, Graz, November 2005 1 Tensor Product Surfaces Given: two curve schemes (Bézier curves or B splines): I: x(u) = m i=0 F i(u)b i, u [a, b], II: x(v) = n j=0 G

### move object resize object create a sphere create light source camera left view camera view animation tracks

Computer Graphics & Animation: CS Day @ SIUC This session explores computer graphics and animation using software that will let you create, display and animate 3D Objects. Basically we will create a 3

### Numerical Methods in Physics Lecture 2 Interpolation

Numerical Methods in Physics Pat Scott Department of Physics, Imperial College November 8, 2016 Slides available from http://astro.ic.ac.uk/pscott/ course-webpage-numerical-methods-201617 Outline The problem

### CPSC 314 LIGHTING AND SHADING

CPSC 314 LIGHTING AND SHADING UGRAD.CS.UBC.CA/~CS314 slide credits: Mikhail Bessmeltsev et al 1 THE RENDERING PIPELINE Vertices and attributes Vertex Shader Modelview transform Per-vertex attributes Vertex

### 3D Modeling techniques

3D Modeling techniques 0. Reconstruction From real data (not covered) 1. Procedural modeling Automatic modeling of a self-similar objects or scenes 2. Interactive modeling Provide tools to computer artists

### So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources.

11 11.1 Basics So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources. Global models include incident light that arrives

### Cornell CS4620 Fall 2011!Lecture Kavita Bala (with previous instructors James/Marschner) Cornell CS4620 Fall 2011!Lecture 1.

Computer graphics: The study of creating, manipulating, and using visual images in the computer. CS4620/5620: Introduction to Computer Graphics Professor: Kavita Bala 1 2 4 6 Or, to paraphrase Ken Perlin...

### CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside

CS130 : Computer Graphics Lecture 2: Graphics Pipeline Tamar Shinar Computer Science & Engineering UC Riverside Raster Devices and Images Raster Devices - raster displays show images as a rectangular array