CSE 167: Introduction to Computer Graphics Lecture 12: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Similar documents
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 #11: Bezier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Curves. Computer Graphics CSE 167 Lecture 11

Information Coding / Computer Graphics, ISY, LiTH. Splines

Computer Graphics Curves and Surfaces. Matthias Teschner

2D Spline Curves. CS 4620 Lecture 18

2D Spline Curves. CS 4620 Lecture 13

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013

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

Lecture IV Bézier Curves

Design considerations

Computergrafik. Matthias Zwicker. Herbst 2010

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes

Objects 2: Curves & Splines Christian Miller CS Fall 2011

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Sung-Eui Yoon ( 윤성의 )

Curves and Surfaces 1

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

Interactive Graphics. Lecture 9: Introduction to Spline Curves. Interactive Graphics Lecture 9: Slide 1

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

3D Modeling Parametric Curves & Surfaces

08 - Designing Approximating Curves

Central issues in modelling

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

CS130 : Computer Graphics Curves (cont.) Tamar Shinar Computer Science & Engineering UC Riverside

Intro to Curves Week 4, Lecture 7

Curves and Surfaces Computer Graphics I Lecture 9

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

Bezier Curves, B-Splines, NURBS

Introduction to Computer Graphics

The Free-form Surface Modelling System

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

Further Graphics. Bezier Curves and Surfaces. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple

Roadmap for tonight. What are Bezier curves (mathematically)? Programming Bezier curves (very high level view).

Intro to Curves Week 1, Lecture 2

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

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2

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

Dgp _ lecture 2. Curves

An introduction to interpolation and splines

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

CS770/870 Spring 2017 Curve Generation

Parametric curves. Brian Curless CSE 457 Spring 2016

INF3320 Computer Graphics and Discrete Geometry

Splines. Connecting the Dots

Computer Graphics I Lecture 11

ECE 600, Dr. Farag, Summer 09

Curves and Surfaces. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd

Properties of Blending Functions

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

COMP3421. Global Lighting Part 2: Radiosity

Geometric Modeling of Curves

CS-184: Computer Graphics

Curves and Surfaces Computer Graphics I Lecture 10

B-spline Curves. Smoother than other curve forms

Rendering Curves and Surfaces. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required:

Need for Parametric Equations

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

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Intro to Modeling Modeling in 3D

Problem Max. Points Total 80

Curves and Surfaces. Shireen Elhabian and Aly A. Farag University of Louisville

COMPUTER AIDED ENGINEERING DESIGN (BFF2612)

COMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg

CS 465 Program 4: Modeller

Know it. Control points. B Spline surfaces. Implicit surfaces

A MATRIX FORMULATION OF THE CUBIC BÉZIER CURVE

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves

CS559 Computer Graphics Fall 2015

CHAPTER 1 Graphics Systems and Models 3

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10

CSE 167: Introduction to Computer Graphics Lecture #7: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2015

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

An Introduction to B-Spline Curves

Chapter 4-3D Modeling

Bézier Splines. B-Splines. B-Splines. CS 475 / CS 675 Computer Graphics. Lecture 14 : Modelling Curves 3 B-Splines. n i t i 1 t n i. J n,i.

Introduction to Geometry. Computer Graphics CMU /15-662

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

Lecture 2.2 Cubic Splines

(Refer Slide Time: 00:02:24 min)

CSE 167: Lecture #7: Color and Shading. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

(Spline, Bezier, B-Spline)

CS 475 / CS Computer Graphics. Modelling Curves 3 - B-Splines

Curve and Surface Basics

Curves D.A. Forsyth, with slides from John Hart

Bezier Curves. An Introduction. Detlef Reimers

Curve Representation ME761A Instructor in Charge Prof. J. Ramkumar Department of Mechanical Engineering, IIT Kanpur

Lecture 9: Introduction to Spline Curves

For each question, indicate whether the statement is true or false by circling T or F, respectively.

CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling

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

Curves & Surfaces. MIT EECS 6.837, Durand and Cutler

On an approach for cubic Bézier interpolation

Subdivision Surfaces

CS130 : Computer Graphics Curves. Tamar Shinar Computer Science & Engineering UC Riverside

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

Transcription:

CSE 167: Introduction to Computer Graphics Lecture 12: Bézier Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Announcements Homework assignment 5 due tomorrow, Nov 8 at 1:30pm Late submissions for assignment 4 will be accepted 2

CSE 169: Computer Animation Most recent course web site is from 2009: http://graphics.ucsd.edu/courses/cse169_w09 PixelActive s CityScape: http://www.youtube.com/watch?v=yrqm9qk_mlo 3

CSE 190: Shader Programming Instructor: Wolfgang Engel, CEO and Co-Founder of Confetti Interactive Lecture topics: Introduction to DirectX 11.1 Compute Simple Compute Case Studies DirectCompute performance optimization Direct3D 11.1 Graphics Pipeline Physically Based Lighting Deferred Lighting, AA Shadows Order-Independent Transparency Global Illumination Algorithms in Games 4

Lecture Overview Polynomial Curves Introduction Polynomial functions Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 5

Modeling Creating 3D objects How to construct complex surfaces? Goal Specify objects with control points Objects should be visually pleasing (smooth) Start with curves, then generalize to surfaces Next: What can curves be used for? 6

Curves Surface of revolution 7

Curves Extruded/swept surfaces 8

Curves Animation Provide a track for objects Use as camera path 9

Video Bezier Curves http://www.youtube.com/watch?v=hldyjneiyvu 10

Curves Can be generalized to surface patches 11

Curve Representation Specify many points along a curve, connect with lines? Difficult to get precise, smooth results across magnification levels Large storage and CPU requirements How many points are enough? Specify a curve using a small number of control points Known as a spline curve or just spline Control point 12

Spline: Definition Wikipedia: Term comes from flexible spline devices used by shipbuilders and draftsmen to draw smooth shapes. Spline consists of a long strip fixed in position at a number of points that relaxes to form a smooth curve passing through those points. 13

Interpolating Control Points Interpolating means that curve goes through all control points Seems most intuitive Surprisingly, not usually the best choice Hard to predict behavior Hard to get aesthetically pleasing curves 14

Approximating Control Points Curve is influenced by control points Various types Most common: polynomial functions Bézier spline (our focus) B-spline (generalization of Bézier spline) NURBS (Non Uniform Rational Basis Spline): used in CAD tools 15

Mathematical Definition A vector valued function of one variable x(t) Given t, compute a 3D point x=(x,y,z) Could be interpreted as three functions: x(t), y(t), z(t) Parameter t moves a point along the curve x(t) z y x(0.0) x(0.5) x(1.0) x 16

Tangent Vector Derivative Vector x points in direction of movement Length corresponds to speed x(t) z y x (0.0) x (0.5) x (1.0) 17 x

Lecture Overview Polynomial Curves Introduction Polynomial functions Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 18

Polynomial Functions Linear: (1 st order) Quadratic: (2 nd order) Cubic: (3 rd order) 19

Polynomial Curves Linear Evaluated as: 20

Polynomial Curves Quadratic: (2 nd order) Cubic: (3 rd order) We usually define the curve for 0 t 1 21

Control Points Polynomial coefficients a, b, c, d can be interpreted as control points Remember: a, b, c, d have x,y,z components each Unfortunately, they do not intuitively describe the shape of the curve Goal: intuitive control points 22

Control Points How many control points? Two points define a line (1 st order) Three points define a quadratic curve (2 nd order) Four points define a cubic curve (3 rd order) k+1 points define a k-order curve Let s start with a line 23

First Order Curve Based on linear interpolation (LERP) Weighted average between two values Value could be a number, vector, color, Interpolate between points p 0 and p 1 with parameter t Defines a curve that is straight (first-order spline) t=0 corresponds to p 0 t=1 corresponds to p 1 t=0.5 corresponds to midpoint 24 p 0. 0<t<1 t=0. p 1 t=1 x(t) = Lerp( t, p 0, p 1 )= ( 1 t)p 0 + t p 1

Linear Interpolation Three equivalent ways to write it Expose different properties 1. Regroup for points p 2. Regroup for t 3. Matrix form 25

Weighted Average x(t) = (1 t)p 0 + (t)p 1 = B 0 (t) p 0 + B 1 (t)p 1, where B 0 (t) = 1 t and B 1 (t) = t Weights are a function of t Sum is always 1, for any value of t Also known as blending functions 26

Linear Polynomial x(t) = (p p 0 ) 14 2 34 t + p 123 0 vector point Curve is based at point p 0 Add the vector, scaled by t p 0..5(p 1 -p 0 ). p 1 -p 0. 27

Matrix Form Geometry matrix Geometric basis Polynomial basis In components 28

Tangent For a straight line, the tangent is constant Weighted average Polynomial Matrix form 29

Lecture Overview Polynomial Curves Introduction Polynomial functions Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 30

Bézier Curves Are a higher order extension of linear interpolation p 1 p 1 p 1 p 2 p 3 p 0 p 0 p 0 p 2 Linear Quadratic Cubic 31

Bézier Curves Give intuitive control over curve with control points Endpoints are interpolated, intermediate points are approximated Convex Hull property Many demo applets online, for example: Demo: http://www.cs.princeton.edu/~min/cs426/jar/bezier.html http://www.theparticle.com/applets/nyu/bezierapplet/ http://www.sunsite.ubc.ca/livingmathematics/v001n01/ubcexamples/b ezier/bezier.html 32

Cubic Bézier Curve Most commonly used case Defined by four control points: Two interpolated endpoints (points are on the curve) Two points control the tangents at the endpoints Points x on curve defined as function of parameter t p 1 p 0 x(t) p 2 33 p 3

Algorithmic Construction Algorithmic construction De Casteljau algorithm, developed at Citroen in 1959, named after its inventor Paul de Casteljau (pronounced Cast-all- Joe ) Developed independently from Bézier s work: Bézier created the formulation using blending functions, Casteljau devised the recursive interpolation algorithm 34

De Casteljau Algorithm A recursive series of linear interpolations Works for any order Bezier function, not only cubic Not very efficient to evaluate Other forms more commonly used But: Gives intuition about the geometry Useful for subdivision 35

De Casteljau Algorithm Given: Four control points A value of t (here t 0.25) p 1 p 0 p 2 p 3 36

De Casteljau Algorithm p 1 q 1 q 0 (t) = Lerp( t,p 0,p ) 1 p 0 q 0 q 1 (t) = Lerp( t,p 1,p ) 2 p 2 q 2 (t) = Lerp( t,p 2,p ) 3 q 2 p 3 37

De Casteljau Algorithm q 0 r 0 q 1 r 0 (t) = Lerp( t,q 0 (t),q 1 (t)) r 1 (t) = Lerp( t,q 1 (t),q 2 (t)) r 1 q 2 38

De Casteljau Algorithm r 0 x r 1 x(t) = Lerp( t,r 0 (t),r 1 (t)) 39

De Casteljau Algorithm p 1 p 0 x p 2 Applets Demo: http://www2.mat.dtu.dk/people/j.gravesen/cagd/decast.html http://www.caffeineowl.com/graphics/2d/vectorial/bezierintro.html 40 p 3

Recursive Linear Interpolation x = Lerp t,r 0,r 1 ( ) r = Lerp ( t,q,q ) 0 0 1 ( ) r 1 = Lerp t,q 1,q 2 q 0 = Lerp( t,p 0,p ) 1 q 1 = Lerp( t,p 1,p ) 2 q 2 = Lerp( t,p 2,p ) 3 p 0 p 1 p 2 p 3 p 1 q 0 r 0 p 2 x q 1 r 1 p 3 q 2 p 4 41

Expand the LERPs q 0 (t) = Lerp( t,p 0,p 1 )= ( 1 t)p 0 + tp 1 q 1 (t) = Lerp( t,p 1,p 2 )= ( 1 t)p 1 + tp 2 q 2 (t) = Lerp( t,p 2,p 3 )= ( 1 t)p 2 + tp 3 r 0 (t) = Lerp( t,q 0 (t),q 1 (t))= 1 t r 1 (t) = Lerp( t,q 1 (t),q 2 (t))= 1 t ( ) ( )p 0 + tp 1 )+ t ( 1 t)p 1 + tp 2 ( )p 1 + tp 2 )+ t ( 1 t)p 2 + tp 3 ( ) 1 t ( ) 1 t x(t) = Lerp t,r 0 (t),r 1 (t) = ( 1 t) ( 1 t) ( 1 t)p 0 + tp 1 )+ t ( 1 t)p 1 + tp 2 +t ( 1 t) ( 1 t)p 1 + tp 2 )+ t ( 1 t)p 2 + tp 3 42 ( ) ( ) ( ) ( ) ( ) ( )

Weighted Average of Control Points Regroup for p: x(t) = 1 t ( )p 0 + tp 1 )+ t ( 1 t)p 1 + tp 2 ( )p 1 + tp 2 )+ t( 1 t)p 2 + tp 3 ) ( ) ( 1 t) 1 t +t 1 t ( ) ( ) ( ) 1 t ( ) x(t) = ( 1 t) 3 p 0 + 3( 1 t) 2 tp 1 + 3( 1 t)t 2 p 2 + t 3 p 3 B 0 (t ) B 6444 74448 1 (t ) 644 7448 x(t) = t 3 + 3t 2 3t + 1 p 0 + 3t 3 6t 2 + 3t ( ) ( ) + 3t 3 + 3t 2 142 43 p + t 3 2 { p 3 B 2 (t ) ( ) B 3 (t ) ( ) p 1 43

Cubic Bernstein Polynomials x(t) = B 0 ( t)p 0 + B 1 ( t)p 1 + B 2 ( t)p 2 + B 3 ( t)p 3 The cubic Bernstein polynomials : B 0 ( t)= t 3 + 3t 2 3t + 1 B 1 ( t)= 3t 3 6t 2 + 3t B 2 ( t)= 3t 3 + 3t 2 ( t)= t 3 B 3 B i (t) = 1 Weights B i (t) add up to 1 for any value of t 44

General Bernstein Polynomials B 1 0 B 1 1 ( t)= t + 1 B 2 0 ( t)= t 2 2t + 1 B 3 0 ( t)= t 3 + 3t 2 3t + 1 ( t)= t B 2 1 ( t)= 2t 2 + 2t B 3 1 ( t)= 3t 3 6t 2 + 3t B 2 2 ( t)= t 2 B 3 2 ( t)= 3t 3 + 3t 2 B 3 3 ( t)= t 3 45 B i n ( t)= n i ( 1 t)n i t B n i ( t) = 1 n ( ) i i = n! i! ( n i)! n! = factorial of n (n+1)! = n! x (n+1)

General Bézier Curves nth-order Bernstein polynomials form nth-order Bézier curves B i n ( t)= n i ( 1 t)n i t n i=0 x( t)= B n i ( t)p i ( ) i 46

Bézier Curve Properties Overview: Convex Hull property Affine Invariance 47

Definitions Convex hull of a set of points: Polyhedral volume created such that all lines connecting any two points lie completely inside it (or on its boundary) Convex combination of a set of points: Weighted average of the points, where all weights between 0 and 1, sum up to 1 Any convex combination of a set of points lies within the convex hull 48

Convex Hull Property A Bézier curve is a convex combination of the control points (by definition, see Bernstein polynomials) A Bézier curve is always inside the convex hull Makes curve predictable Allows culling, intersection testing, adaptive tessellation Demo: http://www.cs.princeton.edu/~min/cs426/jar/bezier.html p 1 p 3 p 0 p 2 49

Affine Invariance Transforming Bézier curves Two ways to transform: Transform the control points, then compute resulting spline points Compute spline points, then transform them Either way, we get the same points Curve is defined via affine combination of points Invariant under affine transformations (i.e., translation, scale, rotation, shear) Convex hull property remains true 50

Cubic Polynomial Form Start with Bernstein form: x(t) = ( t 3 + 3t 2 3t + 1)p 0 + ( 3t 3 6t 2 + 3t)p 1 + ( 3t 3 + 3t 2 )p 2 + ( t 3 )p 3 Regroup into coefficients of t : x(t) = ( p 0 + 3p 1 3p 2 + p 3 )t 3 + ( 3p 0 6p 1 + 3p 2 )t 2 + ( 3p 0 + 3p 1 )t + ( p 0 )1 x(t) = at 3 + bt 2 + ct + d ( ) ( ) ( ) ( ) a = p 0 + 3p 1 3p 2 + p 3 b = 3p 0 6p 1 + 3p 2 c = 3p 0 + 3p 1 d = p 0 Good for fast evaluation Precompute constant coefficients (a,b,c,d) Not much geometric intuition 51

Cubic Matrix Form x(t) = a r t 3 r b c r t 2 d t 1 r a = p 0 + 3p 1 3p 2 + p 3 r b = ( 3p 0 6p 1 + 3p 2 ) r c = ( 3p 0 + 3p 1 ) d = p 0 ( ) ( ) 1 3 3 1 t 3 3 6 3 0 x(t) = [ p 0 p 1 p 2 p 3 ] t 2 3 3 0 0 t 0 0 0 1444 24443 1 444 24443 1 { T G Bez B Bez Other types of cubic splines use different basis matrices B Bez 52

Cubic Matrix Form In 3D: 3 equations for x, y and z: 53 [ ] x x (t) = p 0 x p 1x p 2 x p 3x x y (t) = p 0 y p 1y p 2 y p 3y x z (t) = p 0z p 1z p 2z p 3z 1 3 3 1 t 3 3 6 3 0 t 2 3 3 0 0 t 1 0 0 0 1 1 3 3 1 t 3 3 6 3 0 t 2 3 3 0 0 t 1 0 0 0 1 1 3 3 1 t 3 3 6 3 0 t 2 3 3 0 0 t 1 0 0 0 1

Matrix Form Bundle into a single matrix x(t) = 1 3 3 1 t 3 p 0 x p 1x p 2 x p 3x 3 6 3 0 p 0 y p 1y p 2 y p 3y t 2 3 3 0 0 t p 0z p 1z p 2z p 3z 1 0 0 0 1 x(t) = G Bez B Bez T x(t) = C T Efficient evaluation Pre-compute C Take advantage of existing 4x4 matrix hardware support 54

Lecture Overview Polynomial Curves Introduction Polynomial functions Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 55

Drawing Bézier Curves Draw line segments or individual pixels Approximate the curve as a series of line segments (tessellation) Uniform sampling Adaptive sampling Recursive subdivision 56

Uniform Sampling Approximate curve with N straight segments N chosen in advance Evaluate x i = x( t i ) where t i = i N for i = 0, 1,K, N Connect the points with lines Too few points? Poor approximation Curve is faceted Too many points? x i = a r i3 N + b r i2 3 N + c r i 2 N + d Slow to draw too many line segments Segments may draw on top of each other x(t) x 0 x 1 x 2 x 3 x4 57

Adaptive Sampling Use only as many line segments as you need Fewer segments where curve is mostly flat More segments where curve bends Segments never smaller than a pixel x(t) 58

Recursive Subdivision Any cubic curve segment can be expressed as a Bézier curve Any piece of a cubic curve is itself a cubic curve Therefore: Any Bézier curve can be broken down into smaller Bézier curves 59

De Casteljau Subdivision p 1 p 0 q r 0 0 r x 1 p 2 De Casteljau construction points are the control points of two Bézier sub-segments q 2 p 3 60

Adaptive Subdivision Algorithm Use De Casteljau construction to split Bézier segment in half For each half If flat enough : draw line segment Else: recurse Curve is flat enough if hull is flat enough Test how far the approximating control points are from a straight segment If less than one pixel, the hull is flat enough 61

Drawing Bézier Curves With OpenGL Indirect OpenGL support for drawing curves: Define evaluator map (glmap) Draw line strip by evaluating map (glevalcoord) Optimize by pre-computing coordinate grid (glmapgrid and glevalmesh) More details about OpenGL implementation: http://www.cs.duke.edu/courses/fall09/cps124/notes/12_curves /opengl_nurbs.pdf 62

Lecture Overview Polynomial Curves Introduction Polynomial functions Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 63

More Control Points Cubic Bézier curve limited to 4 control points Cubic curve can only have one inflection (point where curve changes direction of bending) Need more control points for more complex curves k-1 order Bézier curve with k control points Hard to control and hard to work with Intermediate points don t have obvious effect on shape Changing any control point changes the whole curve Want local support: each control point only influences nearby portion of curve 64

Piecewise Curves Sequence of line segments Piecewise linear curve Sequence of simple (low-order) curves, end-to-end Known as a piecewise polynomial curve Sequence of cubic curve segments Piecewise cubic curve (here piecewise Bézier) 65

Parametric Continuity C 0 continuity: Curve segments are connected C 1 continuity: C 0 & 1st-order derivatives agree Curves have same tangents Relevant for smooth shading C 2 continuity: C 1 & 2nd-order derivatives agree Curves have same tangents and curvature Relevant for high quality reflections