Computer Graphics Workshop: Transformations, Perspectives, and Applications
Understand linear, affine, and projective transformations in computer graphics. Learn about perspective distortion, correction, and attribute interpolation. Explore Xlib, OpenGL, and GLU applications. Dive into graphics software architecture.
Computer Graphics Workshop: Transformations, Perspectives, and Applications
E N D
Presentation Transcript
IITD CSE Summer WorkshopComputer Graphics Subodh Kumar
1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 x y z 1 Perspective Transformation x,y,z,w x,y,z,z 1
Linear and Affine transform • Linear: x’ = Ax • Scale, Rotation • T(ax + by) = aT(x) + bT(y) • Affine: Translate • x’ = Ax + b • Transforms a line to a line • Respects parallelism • Does not respect angles and lengths
Projective Transformation • n-dimensional projective space is an n+1-dimensional vector space • 0,0,0,… is not a part of this space • x = kx • xn+1 == 0 => Point at infinity {= Direction} • Actually any coordinate may be chosen • Affine space is a projection of Projective space • Typically on the plane xn+1 = 1 • Projective transformation • xj = ∑aixi • Ax, A is a 4x4 matrix (15 DOF!)
Normal Transformation n.p = 0 nTp = 0 => n’T Mp must be 0 => (M’n)T Mp = 0 => nTM’T Mp = 0 => M’T M = kI => M’T = M-1 (k = 1) => M’ = k(M-1)T
zp-zl xp-xl = zr-zl xr-xl Attribute Interpolation x0,y0,z0 y = mx + c x = 1/m(y+c) =ay+b x2,y2,z2 x+1 = ay+a + b = x + a x1, y1,z1 zp+1 = zp + k
Perspective Distortion z2 z1
Perspective Correction • Linear interpolation: • p(t) = p1 + (p2 – p1) u, 0 <= u<= 1 • Screen space interpolation: • ys = y1s + t (y2s – y1s) • same as: y/z = y1/z1 + t (y2/z2 – y1/z1) • But really: • y = y1 + u (y2 – y1) • z = z1 + u (z2 – z1)
Xlib GLX OpenGL GLU Application GDI WGL OGL/DX GLU Application Graphics SW ArchitectureTop View Windows Unix
OpenGL Architecture Client State Update / Action Pushbuffer Machine state Frame Buffer Must Respect PB order