www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 CS2401 UNIT I 2D PRIMITIVES 1. Define persistence, resolution. Persistence is defined as the time it takes the emitted light from the screen to decay to one tenth of its original intensity. The maximum number of points that can be displayed without overlap on a CRT is referred to as the resolution. 2. Define Aspect ratio. (AU MAY/JUNE 2013) Aspect ratio is the ratio of the vertical points to horizontal points necessary to produce equal length lines in both directions on the screen. 3. What is horizontal and vertical retrace? The return to the left of the screen after refreshing each scan line is called as the horizontal retrace. Vertical retrace: At the end of each frame the electron beam returns to the top left corner of the screen to the beginning the next frame. 4. What is interlaced refresh? Each frame is refreshed using two passes. In the first pass, the beam sweeps across every other scan line from top to bottom. Then after the vertical retrace, the beam traces out the remaining scan lines. 5. What is a raster scan system? In a raster scan system the electron beam is swept across the screen, one row at a time top to bottom. As the electron beam moves across each row, the beam intensity is turned on and off to create a pattern of illuminated spots. Picture information is stored in a memory area called refresh buffer or frame buffer. Most suited for scenes with subtle and color patterns. 6. What is a random scan system? In random scan display unit, a CRT has the electron beam directed only to the parts of the screen where a picture is to be drawn. This display is also called as vector displays. Picture definition is stored as asset of line drawing commands in a memory referred to the refresh display file or display list or display program. 7. What is scan conversion and what is a cell array? Digitizing a picture definition given in an application program into a set of pixel intensity values for storage in the frame buffer by the display processor is called scan conversion. The cell array is a primitive that allow users to display an arbitrary shape defined as a two dimensional grid pattern. 8. What is the major difference between symmetrical DDA and simple DDA? (AU MAY/JUNE 2012) Simple DDA Symmetric DDA In simple DDA, m=Δx/eΔy is transformed to In symmetric DDA, e is chosen such that though m=eΔx/eΔy where e, call it the increment factor, both the co-ordinates of the resultant points has to is a positive real number. be rounded off, it can be done so very efficiently, thus quickly. e is chosen as 1/max(|Δx|,|Δy|) such that one of e is chosen as 1/2^n where 2^(n-1) <= the coordinate is integral and only the other max(|Δx|,|Δy|) < 2^n. In other words the length of coordinate has to be rounded. i.e. P(i+1) = the line is taken to be 2^n aligned. The increments P(i)+(1,Round(e*Δy)) here one coordinate is for the two coordinates are e*Δx and e*Δy. being incremented by 1 and the other by e*Δy 9. Digitize a line from (10,12) to (15,15) on a raster screen using Bresenham’s straight line algorithm.(AU NOV/DEC 2013) ∆x=5, ∆y=3 K Pk (Xk+1,Yk+1) Initial decision parameter 0 1 (11,13) P0= 2 ∆y - ∆x 1 -3 (12,13) = 1 2 3 (13,14) Increments for calculating successive 3 -1 (14,14) decision parameters are 4 5 (15,15) 2 ∆y = 6 2∆y - 2∆x = -4 Plot initial point (x0,y0) = (10,12) 10. List down any two attributes of lines. (AU MAY/JUNE 2014 & NOV/DEC 2014) The basic attributes of a straight line segment are its: St. Joseph’s College of Engineering/St.Joseph’s Institute of Technology 1 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 . Type: solid, dashed and dotted lines. . Width: the thickness of the line is specified. . Color: a color index is included to provide color or intensity properties. 11. What are line caps? The shape of the line ends are adjusted to give a better appearance by adding line caps. . Butt cap: obtained by adjusting the end positions of the component parallel lines so that the thick line is displayed with square ends that is perpendicular to the line path. . Round cap: obtained by adding a filled semicircle to each butt cap. . Projecting square cap: extend the line and add butt caps that are positioned one-half of the line width beyond the specified endpoints.

Butt cap Round cap Projecting square cap.

12. What are different methods of smoothly joining two line segments? . Miter joins: Accomplished by extending the outer boundaries of each of the two lines until they meet. . Round join: produced by capping the connection between the two segments with a circular boundary whose diameter is equal to the line width. . Bevel join: generated by displaying the line segments with butt caps and filling in the triangular gap where the segments meet. 13. Write down the attributes of characters. (AU MAY/JUNE 2012 IT & MAY/JUNE 2014) The appearance of displayed characters is controlled by attributes such as font, size, color and orientation. Attributes can be set both for entire character strings (text) and for individual characters defined as marker symbols. The choice of font gives a particular design style. Characters can also be displayed as underlined, in boldface, in italics and in outline or shadow styles. 14. Briefly explain about the unbundled attributes. Unbundled attributes: how exactly the primitive is to be displayed is determined by its attribute setting. These attributes are meant to be used with an output device capable of displaying primitives the way specified. 15. Briefly explain about the bundled attributes. Bundled attributes: when several kinds of output devices are available at a graphics installation, it is convenient for a user to be able to say how attributes are to be interpreted on different o/p devices. This is accomplished by setting up tables for each output device that lists sets of attribute value that are to be used on that device to display each primitive type. A particular set of attribute values for a primitive on each o/p device is then chosen by specifying the appropriate table index. Attributes specified in this manner is called as bundled attribute. 16. Define aliasing. Displayed primitives generated by the raster algorithms have a jagged, stair step appearance because the sampling process digitizes coordinate points on an object to discrete integer pixel positions. This distortion of information due to low frequency sampling is called aliasing. 17. What is antialiasing? Appearance of displayed raster lines by applying antialiasing methods that compensate for the under sampling process. Nyquist sampling frequency: to avoid losing information, the sampling frequency to at least twice that of the highest frequency occurring in the object. Fs=2*fmax.

St. Joseph’s College of Engineering/St.Joseph’s Institute of Technology 2 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 18. What is antialiasing by super sampling or post filtering? This is a technique of sampling object characteristics at a high resolution and displaying results at a lower resolution. 19. What is antialiasing by area sampling or prefiltering? An alternative to super sampling is to determine pixel intensity by calculating areas of overlap of each pixel with the objects to be displayed .antialiasing by computing overlaps areas is referred to as area sampling or prefiltering. 20. What is antialiasing by pixel phasing? Raster objects can be antialiased by shifting the display location of pixel areas. This is applied by ―micro positioning‖ the electron beam in relation to object geometry. 21. What are homogeneous co-ordinates? (AU MAY/JUNE 2012 IT) To express any 2D transformation as a matrix multiplication, each Cartesian co-ordinate position (x, y) is

represented with the homogeneous coordinate triple (xh, yh, h) where x= and y= . Thus the general homogeneous coordinate representation can also be written as (h.x, h.y, h). The homogeneous parameter h can be any nonzero value. A convenient choice is to set h=1. Each 2D position is then represented by the homogeneous coordinates (x, y, 1). 22. What are the basic transformations? Translation : translation is applied to an object by repositioning it along a straight line path from one coordinate location to another. x1=x+Tx y1=y+Ty (Tx,Ty) – translation vector or shift vector Rotation: a two dimensional rotation is applied to an object by repositioning it along a circular path in the xy plane. P1=R.P R= cosθ -sinθ sinθ cosθ θ- rotation angle

Scaling:a scaling transformation alters the size of an object . x1=x.Sx y1=y.Sy Sx and Sy are scaling factors. 23. What is uniform and differential scaling? Uniform scaling: Sx and Sy are assigned the same value. Differential scaling: unequal values for Sx and Sy. 24. Define shear A transformation that distorts the shape of an object such that the transformed shape appears as if the object is composed of internal layers that had been caused to slide over each other is called shear. 25. Define reflection. A reflection is a transformation that produces a mirror image of an object. By line y =0(x-axis) 1 0 0 transformation matrix = 0 -1 0 0 0 1

By the x axis -1 0 0 transformation matrix = 0 1 0 0 0 1 26. Write down the shear transformation matrix. (AU NOV/DEC 2012) A transformation that distorts the shape of an object such that the transformed shape appears as if the object is composed of internal layers that had been caused to slide over each other is called shear. x-direction shear relative to x axis

St. Joseph’s College of Engineering/St.Joseph’s Institute of Technology 3 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 x-direction shear relative to other reference lines

y-direction shear relative to x=xref

27. Differentiate window and viewport. (AU NOV/DEC 2011) Window Viewport A window is a world coordinate area selected for A viewport is an area on a display device to which display. the window is mapped. The window defines what is to be viewed The viewport defines where it is to be displayed. 28. What is the rule of clipping? (AU MAY/JUNE 2012) For the viewing transformation, we are needed to display only those picture parts that are within the window area. Everything outside the window is discarded. Clipping algorithms are applied in world co- ordinates, so that only the contents of the window interior are mapped to device co-ordinates. 29. Define clipping. (AU NOV/DEC 2012 & MAY/JUNE 2014) Any procedure that identifies those portions of a picture that are either inside or outside of a specified region of space is referred to as a clipping algorithm or clipping. The region against which an object is to be clipped is called as the clip window. 30. How will you clip a point? (AU MAY/JUNE 2013) Assuming that the clip window is a rectangle in standard position, we save a point P = (x,y) for display if the following inequalities are satisfied: xwmin <= x <= wxmax ywmin <= y <=ywmax where the edges of the clip window [xwmin, xwmax, ywmin, ywmax ] can be either the world coordinate window boundaries or viewport boundaries. If any one of these four inequalities is not satisfied, the point is clipped ( not saved for display ). For example , point clipping can be applied to scenes involving explosions or sea foam that are modeled with particles ( points) distributed in some region of the scene. 31. List the different types of text clipping methods available. Give an example for text clipping. (AU NOV/DEC 2013 & MAY/JUNE 2014) The different types of text clipping methods are  All –or-none string clipping.  All-or-none character clipping.  Clip-components of individual characters.

1)All or none string 2) All or none character clipping3) Clip components of individual characters

PART B 1. Write down and explain the Bresenham‘s line drawing algorithm with example. (AU MAY/JUNE 2012)

Algorithm -steps St. Joseph’s College of Engineering/St.Joseph’s Institute of Technology 4 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

 Start  Read the two end points of the line and assign the left end point to x0 ,y0  Load x0 ,y0 into the frame buffer (i.e) plot the first point  Compute dx,dy,2dy and 2dy-2dx and determine the decision parameter P0 as 2dy-dx  At each xk , along the line starting at k = 0, perform the following test  If Pk < 0, the next point to plot is (xk+1 , yk ) and Pk+1 = Pk +2dy  Otherwise the next point to plot is (xk , yk+1 ) and Pk+1 = Pk +2dy- 2dx  Repeat step 4 dx times  Stop

Example

St. Joseph’s College of Engineering/St.Joseph’s Institute of Technology 5 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

2. Explain about Bresenham‘s circle generating algorithm. (AU MAY/JUNE 2012) Start Input the radius r and the center (xc,yc) and obtain the first point on the circumference of a circle centered on the origin as (x0,y0) = (0,r) Calculate the initial value of the decision parameter as P0 = 5/4 – r At each xk position, starting at k = 0, perform the following test If Pk < 0, the next point along the circle centered on (0,0) is (xk+1,yk) and Pk+1 = Pk +2xk+1+1 Otherwise, the next point along the circle is (xk+1,yk-1) and Pk+1 = Pk +2xk+1+1- 2yk+1 where 2x k+1 = 2x k + 2 and 2yk+1 = 2y k - 2 Determine symmetry points in the remaining seven octants Move each calculated pixel position (x,y) onto the circular path centered on (xc,yc) and plot the coordinate value x = x+xc , y = y+ yc Repeat steps 3 to 5 until x >= y Stop

Example

3. Explain the ellipse drawing algorithm with an example. (AU MAY/JUNE 2014 & NOV/DEC 2014) Algorithm-steps  Start St. Joseph’s College of Engineering/St.Joseph’s Institute of Technology 6 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

 Input a, b and ellipse center (xc, yc) and obtain the first point on the ellipse centered on the origin as (x0, y0) = (0,b) 2 2 2  Calculate the initial value of the decision parameter in region 1 as P10 = b – a b + ¼ a  At each xk position in region 1, starting at k = 0, perform the following test 2 2  If P1k < 0, the next point along the ellipse centered on (0,0) is (xk+1,yk) and P1k = P1k + 2b xk+1+b 2 2 2  Otherwise , the next point along the circle is (xk+1,yk-1) and P1k = P1k + 2b xk+1 – 2a yk+1+b with 2 2 2 2 2 2b xk+1 = 2b yk – 2a and continue until 2b x >= 2a y  Calculate the initial value of the decision parameter in region 2 using the last point (x0, y0) 2 2 2 2 2 2 calculated in region 1 as P20 = b (x0+1/2) +a (y0-1) – a b  At each yk position in region 2, starting at k = 0, perform the following test 2 2  If P2k > 0 , the next point along the ellipse centered (0,0) is (xk,yk-1) and P2k+1 = P2k – 2a yk+1+b 2 2 2  Otherwise , the next point along the circle is (xk+1,yk-1) and P2k+1 = P2k + 2b xk+1 – 2a yk+1+a using the same incremental calculation for x and y in region 1.  Determine symmetry points in the other three quadrants  Move each calculated pixel position (x,y) onto the elliptical path centered on (xc, yc) and plot the coordinate values x = x + xc and y = y + yc  Repeat the steps 4 to 8 until 2b2x >= 2a2y  Stop

An Generation of points and ellipse tracing in the two regions R1 and R2

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 7 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

4. i) Calculate the pixel location approximating the first octant of a circle having center at (4,5) and radius 4 units suing Bresenhams algorithm.(8) ii) Discuss in brief: Antialiasing techniques. (8) (AU NOV/DEC 2013) Antialiasing methods were developed to combat the effects of aliasing. There are three main classes of antialiasing algorithms.  As aliasing problem is due to low resolution, one easy solution is to increase the resolution , causing sample points to occur more frequently. This increases the cost of image production.

 The image is created at high resolution and then digitally filtered. This method is called supersampling or postfiltering and eliminates high frequencies which are the source of aliases.

 The image can be calculated by considering the intensities over a particular region. This is called prefiltering.

Prefiltering.

Prefiltering methods treat a pixel as an area, and compute pixel color based on the overlap of the scene's objects with a pixel's area. These techniques compute the shades of gray based on how much of a pixel's area St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 8 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 is covered by a object. For example, a modification to Bresenham's algorithm was developed by Pitteway and Watkinson. In this algorithm, each pixel is given an intensity depending on the area of overlap of the pixel and the line. So, due to the blurring effect along the line edges, the effect of antialiasing is not very prominent, although it still exists. Prefiltering thus amounts to sampling the shape of the object very densely within a pixel region. For shapes other than polygons, this can be very computationally intensive.

Postfiltering.

Supersampling or postfiltering is the process by which aliasing effects in graphics are reduced by increasing the frequency of the sampling grid and then averaging the results down. This process means calculating a virtual image at a higher spatial resolution than the frame store resolution and then averaging down to the final resolution. It is called postfiltering as the filtering is carried out after sampling.

There are two drawbacks to this method

 The drawback is that there is a technical and economic limit for increasing the resolution of the virtual image.

 Since the frequency of images can extend to infinity, it just reduces aliasing by raising the Nyquist limit - shift the effect of the frequency spectrum.  Supersampling is basically a three stage process.  A continuous image I(x,y) is sampled at n times the final resolution. The image is calculated at n times the frame resolution. This is a virtual image.

 The virtual image is then lowpass filtered

 The filtered image is then resampled at the final frame resolution. . Algorithm for supersampling  To generate the origial image, we need to consider a region in the virtual image. The extent of that region determines the regions involved in the lowpass operation. This process is called convolution. After we obtain the virtual image which is at a higher resolution, the pixels of the final image are located over superpixels in the virtual image. To calculate the value of the final image at (Si,Sj), we place the filter over the superimage and compute the sum of the filter weights and the surrounding pixels. An adjacent pixel of the final image is calculated by moving the filter S superpixels to the right. Thus the step size is same as the scale factor between the real and the virtual image.  Filters combine samples to compute a pixel's color. The weighted filter shown on the slide combines nine samples taken from inside a pixel's boundary. Each sample is multiplied by its corresponding weight and the products are summed to produce a weighted average, which is used as the pixel color. In this filter, the center sample has the most influence. The other type of filter is an unweighted filter. In an unweighted filter, each sample has equal influence in determining the pixel's color. In other words, an unweighted filter computes an unweighted average.  The spatial extent of the filter determines the cutoff frequency. The wider the filter, the lower is the cutoff frequency and the more blurred is the image. The options available in supersampling are  The value of S - scaling factor between the virtual and the real images.

 The choice of the extents and the weights of the filter

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 9 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 As far the first factor is concerned, higher the value, the better the result is going to be. The compromise to be made is the high storage cost.

5. Explain the following: (AU NOV/DEC 2012) a. Line drawing algorithm. (8) DDA algorithm  Step : 1 If the slope is less than or equal to 1 ,the unit x intervals Dx=1 and compute each successive y values. Dx=1 m = Dy / Dx m = ( y2-y1 ) / 1 m = ( yk+1 – yk ) /1 yk+1 = yk + m subscript k takes integer values starting from 1,for the first point and increment by 1 until the final end point is reached. m->any real numbers between 0 and 1 Calculate y values must be rounded to the nearest integer  Step : 2 If the slope is greater than 1 ,the roles of x any y at the unit y intervals Dy=1 and compute each successive y values. Dy=1

m= Dy / Dx m= 1/ ( x2-x1 ) m = 1 / ( xk+1 – xk )

xk+1 = xk + ( 1 / m )  Step : 3 If the processing is reversed, the starting point at the right Dx=-1 m= Dy / Dx m = ( y2 – y1 ) / -1 yk+1 = yk - m Iintervals Dy=1 and compute each successive y values.  Step : 4 Here, Dy=-1 m= Dy / Dx m = -1 / ( x2 – x1 ) m = -1 / ( xk+1 – xk ) xk+1 = xk + ( 1 / m )

b. Line clipping algorithm. (8) Liang-Barsky line clipping

To compute the final line segment:

1. A line parallel to a clipping window edge has for that boundary. 2. If for that , , the line is completely outside and can be eliminated. 3. When the line proceeds outside to inside the clip window and when , the line proceeds inside to outside. St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 10 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

4. For nonzero , gives the intersection point. 5. For each line, calculate and . For , look at boundaries for which (i.e. outside to inside).

Take to be the largest among . For , look at boundaries for which (i.e. inside to outside).

Take to be the minimum of . If , the line is outside and therefore rejected.

6. With suitable examples, explain the following a. Rotational transformations. (8) Reposition an object along the circular path in the XY plane To generate rotation specify  rotational angle Θ  rotation point/pivot point + ve values for Θ define anticlockwise rotation - ve values for Θ define clockwise rotation

Transformation equation: xI = r Cos( Ф+Θ) = r Cos Ф Cos Θ – r Sin Ф Sin Θ yI = r Sin( Ф + Θ) = r Cos Ф Sin Θ + r Sin Ф Cos Θ but x = r Cos Ф y = r Sin Ф So, xI = x Cos Θ – y Sin Θ yI = x Sin Θ + y Cos Θ Column vector rep. PI = R.P

b. Curve clipping algorithm. (8) The bounding rectangle for a curved object can be used first to test for overlap with a rectangular clip window (we can use polygon clipping) Case 1  If the bounding rectangle for the object is completely inside the window, we save the object. Case 2 If the rectangle is determined to be completely outside the window, we discard the object Case 3 If the two regions overlap, we will need to solve the simultaneous line-curve equations to obtain the clipping intersection points. Circle clipping If XC + R < XLEFT Then the circle is discarded . -No need for bounding triangle

If XC - R > Xright Then the circle is discarded If YC - R >Ytop Then the circle is discarded

If YC +R

If all the four previous conditions are false then the circle is saved

Intersection conditions: With right edge: Xc+R>Xright With left edge: Xc-RYtop With bottom edge: Yc-R

Getting intersection points : Example : The intersection with the right edge  Simply Cos α = (Xright-Xc )/R  Get α  y=R sin α  the segment from angle 0 to angle α is discarded  the segment from angle α to angle 360-α is considered  the segment from angle 360-α to angle 360 is discarded

7. Write a detailed note on the basic two dimensional transformations. Transformations-definition and types of transformations Transformation: alter the coordinate description of the objects. Basic geometric transformation:  Translation  Rotation  Scaling Additional transformation:  Reflection  Shear Translation Moves the object without deformation Points are translated by the same amount Translation equation: I I x = x + tx y = y + ty Matrix equation: PI = P + T Rotation: Reposition an object along the circular path in the XY plane Transformation equation: xI = r Cos( Ф+Θ) = r Cos Ф Cos Θ – r Sin Ф Sin Θ yI = r Sin( Ф + Θ) = r Cos Ф Sin Θ + r Sin Ф Cos Θ but x = r Cos Ф y = r Sin Ф So, xI = x Cos Θ – y Sin Θ St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 12 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 yI = x Sin Θ + y Cos Θ Column vector rep. PI = R.P Scaling: alters the size of the object coordinate values of the vertex is multiplied by scaling factors Sx & Sy I x = x . Sx I y = y . Sy Reflection produces mirror image obtained by rotating the object 180 degrees about the reflection axis. Shear distorts the shape of an object. can be with respect to both axis

8. i)A polygon has four vertices located at A(20,10) B(60,10) C(60,30) D (20,30). Calculate the vertices after applying a transformation matrix to double the size of polygon with point A located on the same place.(8) Transformations-definition and types of transformations Transformation: alter the coordinate description of the objects. Basic geometric transformation:  Translation  Rotation  Scaling Additional transformation:  Reflection  Shear

Scaling-definition-equations-diagram-matrix representation Scaling: alters the size of the object coordinate values of the vertex is multiplied by scaling factors Sx & Sy I x = x . Sx I y = y . Sy

Apply the equation to each point A(20,10) B(60,10) C(60,30) D (20,30) Fixed point scaling procedure must be used A(20,10) is used as the fixed point and the transformed values are calculated

ii) The reflection along the line y = x is equivalent to the reflection along the X axis followed by counter clockwise rotation by Φ.(8) (AU NOV/DEC 2013) Transformations-definition and types of transformations Transformation: alter the coordinate description of the objects. Basic geometric transformation:  Translation  Rotation  Scaling Additional transformation:  Reflection St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 13 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016  Shear

Reflection-definition-equations-diagram-matrix representation Reflection produces mirror image obtained by rotating the object 180 degrees about the reflection axis. Rotation-definition-equations-diagram-matrix representation The reflection matrix is solved for the angle Φ

9. i) Explain two dimensional Translation and Scaling with an example.(8) Transformations-definition and types of transformations Translation Moves the object without deformation Points are translated by the same amount Translation equation: I I x = x + tx y = y + ty Matrix equation: PI = P + T Scaling-definition-equations-diagram-matrix representation Scaling: alters the size of the object coordinate values of the vertex is multiplied by scaling factors Sx & Sy I x = x . Sx I y = y . Sy

ii) Obtain a transformation matrix for rotating an object about a specific pivot point.(8) (AU NOV/DEC 2013) To rotate the object about any selected point (xr ,yr ) perform,  Translation  Rotation  Translation ( inverse translation) in sequence Translation Moves the object without deformation Points are translated by the same amount Translation equation: I I x = x + tx y = y + ty Matrix equation: PI = P + T

Rotation: Reposition an object along the circular path in the XY plane Transformation equation: xI = r Cos( Ф+Θ) = r Cos Ф Cos Θ – r Sin Ф Sin Θ yI = r Sin( Ф + Θ) = r Cos Ф Sin Θ + r Sin Ф Cos Θ but x = r Cos Ф y = r Sin Ф So, xI = x Cos Θ – y Sin Θ yI = x Sin Θ + y Cos Θ St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 14 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Column vector rep. PI = R.P Inverse Translation Points are translated by the same amount Translation equation: I I x = x - tx y = y - ty Matrix equation: P = PI - T

10. Explain briefly the line clipping algorithm with an example. (AU NOV/DEC 2014 ) Basic concept of Cohen-Sutherland Region codes Bit 1 – left Bit 2 – right Bit 3 – below Bit 4 – above  If the point is in clipping rectangle then the region code is 0000  A value of 1 in any position indicates the point is in that relative position

Assignment of Binary region codes  Bit 1 is set to 1 if x < xwmin  Bit 2 is set to 1 if x > xwmax  Bit 3 is set to 1 if y < ywmin  Bit 4 is set to 1 if y > ywmax

Calculation of intersection points with the clip window  Accept the lines whose both endpoints are having the region code 0000  Reject the lines whose endpoints have a 1 in the same bit position in the region code  Lines that cannot be identified as completely inside or outside a clip window are checked for intersection with window boundaries  Intersection with clipping boundary can be calculated using the slope intercept form of the line equation.  The intersection point with the vertical boundary is y = y1 + m (x – x1 )  The intersection point with the horizontal boundary is x = x1 + (y – y1) / m

Example

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 15 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

11. Explain in detail about window to viewport coordinate transformation. The viewing pipeline Mapping a part of a world coordinate scene to device coordinates 2D viewing transformation pipeline MC → WC → VC →NVC →DC

Window and Viewport-definition Viewing transformation-window to viewport transformation-windowing transformation The mapping of a point at position P(xw , yw ) in window to viewport is given by xv = xvmin + (xw – xwmin ).sx yv = yvmin + (yw – ywmin ).sy St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 16 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 where sx = xvmax – xvmin / xwmax – xwmin sy = yvmax – yvmin / ywmax – ywmin

12. Explain in detail Sutherland-Hodgeman polygon clipping algorithm with example. (AU MAY/JUNE 2012 IT) Sutherland Hodgeman Polygon Clipping performed by processing polygon vertices against each clip rectangle boundary Processing cases 1. First vertex is outside , Second is inside add second vertex & intersection point of polygon edge with window boundary to o/p vertex list 2. If both vertices are inside add the second vertex to o/p vertex list 3. If the first vertex is inside ,second is outside save the edge intersection point with window boundary to o/p vertex list 4. If both vertices are outside add nothing to o/p vertex list

UNIT II 3D CONCEPTS 1. What are the two types of projections? Parallel projection: coordinate positions are transformed to the view plane along parallel lines. Perspective projection: object positions are transformed to the view plane along lines that converge to a point called projection reference point. 2. Differentiate parallel projection from perspective projection. (AU NOV/DEC 2014) Parallel Projection Perspective Projection In parallel projection, coordinate positions are In perspective projection, object positions are transformed to the view plane along parallel lines. transformed to the view plane along lines that converge to a point called projection reference point. Or center of projection Preserves the relative proportions of objects. Produce realistic views but does not preserve relative proportions. Used in drafting to produce scale drawings of 3D Projections of distant objects are smaller than the objects. projections of objects of the same size that are closer to the projection plane. 3. Differentiate oblique and orthographic parallel projections. (AU MAY/JUNE 2012 IT &NOV/DEC 2012) Orthographic Parallel Projection Oblique Parallel projection Projection is perpendicular to the view plane. Projection is not perpendicular to the view plane Used to produce front, side and top views of object An oblique projection vector is specified with two called as elevations angles, and . 4. Give the single-point perspective projection transformation matrix when projectors are placed on the z-axis. (AU NOV/DEC 2013) Xn 1 0 0 0 x Yn = 0 1 0 0 y Zn 0 0 -Zvp/dp Zvp(Zprp/dp) z h 0 0 -1/dp (Zprp/dp) 1 5. What are the two types of parallel projection? Orthographic parallel projection: projection is perpendicular to the view plane. Oblique parallel projection: projection is not perpendicular to the view plane. 6. Explain about axonometric projection.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 17 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Orthogonal projections that display more than one face of an object are axonometric projection. 7. Explain about isometric projection. Isometric projection is obtained by aligning the projection plane so that it intersects each coordinate axis in which the object is defined at the same distance from the origin. 8. Explain about cavalier projections. Point (x,y,z) is projected tp position (xp,yp) on the view plane. The projection line from (x,y,z) and (xp,yp) makes and angle α with the line on the projection plane that joins(xp,yp) and (x,y). when α = 45 the views obtained are cavalier projectins. All lines perpendicu;ar to the projection plane are projected with no change in length. 9. What are the representation schemes for solid objects? Boundary representations: they describe a 3D object as a set of surfaces that separate the object interior from environment. Example: polygon facets Space partitioning representations: they are used to describe interior properties, by partitioning the spatial region containing an object into a set of small, non- overlapping, contiguous solids. Example: octree 10. Define quadric surfaces. (AU NOV/DEC 2011) Quadric surfaces are described with second degree equations (quadrics). They include sphere, ellipsoids, tori, paraboloids and hyperboloids. Spheres and ellipsoids are common elements of graphic scenes, they are often available in graphics packages from which more complex objects can be constructed. 11. What is an ellipsoid? An ellipsoid surface can be described as an extension of a spherical surface, where the radii in three mutually perpendicular directions can have different values. The parametric representation for ellipsoid of

latitude angle  and longitude angle  is x = rxcoscos, -/2 ≤  ≤ /2, y= rycos sin, - ≤  ≤  and z=rz sin 12. What are blobby objects? Some objects do not maintain a fixed shape, but change their surface characteristics in certain motions or when in proximity with other objects. These objects are referred to as blobby objects, since their shapes show a certain degree of fluidness. 13. What are splines? (AU NOV/DEC 2011, NOV/DEC 2012 MAY/JUNE 2014& NOV/DEC 2014) The term spline is a flexible strip used to produce a smooth curve through a designated set of points. In computer graphics, the term spline curve refers to any composite curve formed with polynomial sections satisfying specified continuity conditions at the boundary of the pieces. 14. How to generate a spline curve? A spline curve is specified by giving a set of coordinate positions called as control points. These control points are then fitted with piece wise continuous parametric polynomial functions in one of the two ways. When polynomial sections are fitted so that the curve passes through each control point, the resulting curve is said to interpolate the set of control points. When the polynomials are fitted to the general control point path without necessarily passing through any control point the resulting curve is said to approximate the set control points. 15. What are called control points? The spline curve is specified by giving a set of coordinate positions, called control points, which indicates the general shape of the curve. 16. When is the curve said to interpolate the set of control points? When polynomial sections are fitted so that the curve passes through each control point, the resulting curve is said to interpolate the set of control points. 17. When is the curve said to approximate the set of control points? When the polynomials are fitted to the general control-point path without necessarily passing through any control point, the resulting curve is said to approximate the set of control points. 18. What is called a convex hull? The convex polygon boundary that encloses a set of control points is called the convex hull. 19. Explain about Bezier curves. This is a spline approximation method. A beizer curve section can be fitted to any number of control points. The number of control points to be approximated and their relative position determine the degree

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 18 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 of the Beizer polynomial. As with the interpolation splines , a beizer curve can be specified with boundary conditions, with a characterization matrix , or with blending functions. 20. Give the general expression of Bezier Bernstein polynomial. (AU NOV/DEC 2013) Bezier Bernstein polynomial k n-k BEZk,n (u) = C (n,k) u (1-u) Where C(n,k) is the binomial coefficient 21. What are the advantages of B spline over Bezier curve? (AU MAY/JUNE 2013) B-splines have two advantages over Bezier splines: i. The degree of a B-spline polynomial can be set independently of the number of control points and ii. B-splines allow local control over the shape of a spline curve or surface. 22. Explain about sweep representations. Sweep representations are useful for constructing three- dimensional objects that possess translational, rotational or other symmetries. One can represent such objects by specifying a 2D shape and a sweep that moves the shape through a region of space. A set of 2D primitives ,such as circle and rectangles, can be provided for sweep representations as menu options. 23. What are the various 3D transformations? The various 3D transformations are translation, reflection, scaling, rotation and shearing. 24. What is shear transformation? (AU MAY/JUNE 2012 IT) Shearing transformations can be used to modify object shapes. They are also used in 3D viewing for obtaining general projection transformation. A z-axis 3D shear: 1 0 a 0 SHZ = 0 1 b 0 0 0 1 0 0 0 0 1 Parameters a and b can be assigned any real value. 25. Define viewing. (AU MAY/JUNE 2012 & MAY/JUNE 2014) Viewing in 3D have more parameters to select when specifying how a 3D scene is to be mapped to a display device. The scene description must be processed through the viewing coordinate transformation and projection routines that transform the 3D viewing coordinate into 2D device coordinates. 26. Mention some surface detection methods. Back-face detection, depth-buffer method, A-buffer method, scan-line method, depth-sorting method, BSP-tree method, area subdivision, octree method, ray casting. 27. What is ray casting? Ray casting methods are commonly used to implement constructive solid geometry operations when objects are described with boundary representations. Ray casting is applied by constructing composite objects in world coordinates with the xy plane corresponding to the pixel plane of a video monitor. This plane is referred to as ―firing plane‖, since each pixel emits a ray through the objects that are combined. Then the surface intersections along each ray path, and they are sorted according to the distance from the firing plane. The surface limits for the composite objects are determined by specified set operations. 28. Define Octree. Hierarchical tree structures called octrees are used to represent solid objects in some graphics system. The tree structure is organized so that each node corresponds to a region of 3D space. This representation for solids takes advantage of spatial coherence to reduce storage requirements for 3D objects. PART B 1. Differentiate parallel and perspective projections and derive their projection matrices. (AU NOV/DEC 2011, MAY/JUNE 2012 IT, NOV/DEC 2012 & MAY/JUNE 2014) • Parallel projections: – no shortening due to distance – several kinds, depending on orientation: • isometric, cavalier,… • Perspective projections: – shortening of objects in the distance St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 19 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 – several kind, depending on orientation: • one, two, three vanishing points Parallel Projection Matrix • Parallel projection onto z=0 plane: x’=x, y’=y, w’=w Matrix for this projection:

Perspective Projection Matrix Projection onto plane z=0, with center of projection at z=-d:

Perspective projections pros and cons: Size varies inversely with distance - looks realistic – Distance and angles are not (in general) preserved – Parallel lines do not (in general) remain parallel

Parallel projection pros and cons: Less realistic looking + Good for exact measurements + Parallel lines remain parallel – Angles not (in general) preserved

Parallel projections For parallel projections, we specify a direction of projection (DOP) instead of a COP. There are two types of parallel projections: w Orthographic projection — DOP perpendicular to PP w Oblique projection — DOP not perpendicular to PP There are two especially useful kinds of oblique projections: w Cavalier projection • DOP makes 45° angle with PP • Does not foreshorten lines perpendicular to PP w Cabinet projection • DOP makes 63.4° angle with PP • Foreshortens lines perpendicular to PP by onehalf

Perspective in the graphic arts is an approximate representation, on a flat surface (such as paper), of an image as it is seen by the eye. The two most characteristic features of perspective are that objects are smaller as their distance from the observer increases; and that they are foreshortened, meaning that an object's dimensions along the line of sight are shorter than its dimensions across the line of sight.

2. Discuss the 3D object representations in detail. (AU NOV/DEC 2014)

Polygon surfaces-polygon tables-plane equations-polygon meshes Object descriptions are stored as sets of surface polygons The surfaces are described with linear equations Polygon table St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 20 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 data is placed into the polygon table for processing Polygon data table can be organised into two groups geometric table attribute table Quadric surfaces-sphere-ellipsoid-torus Described with second degree eqns. Ex. Sphere,ellipsoids,tori,paraboloids,hyperboloids Sphere A spherical surface with radius ‗r‘ centered on the coordinate origin is defined as a set of points(x,y,z) that satisfy the equation x2 + y2 + z2 = r2 In parametric form, x = r CosΦCosΘ y = r Cos ΦSinΘ z = r Sin Φ Blobby objects-definition and example Don‘t maintain a fixed shape Change surface characteristics in certain motions Ex. Water droplet, Molecular structures -a r 2 f(x,y,z) = Σk b ke k k - T = 0 r = √x2 + y2 + z2 T =some threshold a,b used to adjust the amount of bloobiness. Spline-representation-interpolation it is a composite curve formed with polynomial pieces satisfying a specified continuity conditions at the boundary of the pieces Bezier curves can be fitted to any no. of control points degree of bezier polynomial is determined by the number of control points and their relative position Bezier curve is specified by Boundary conditions Characterising matrix Blending function

3. How are polygon surfaces represented in 3D? Polygon tables-Basic concept Polygon table • data is placed into the polygon table for processing • Polygon data table can be organised into two groups  geometric table  attribute table

Storing geometric data To store geometric data three lists are created  Vertex table – contains coordinate values for each vertex  Edge table – contains pointers back into the vertex table  Polygon table – contains pointers back into the edge table Advantages of three table efficient display of objects For faster info. Extraction expand edge table to include forward pointers to the polygon table Plane Equation

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 21 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Ax + By + Cz + D = 0 eqn. is solved by Cramer‘s rule Identification of points • if Ax + By + Cz + D < 0 ,the points (x,y,z) is inside the surface • if Ax + By + Cz + D > 0 ,the points (x,y,z) is outside the surface

4. Write notes on quadric surfaces. (AU NOV/DEC 2012) Quadric surfaces-definition Described with second degree eqns. Ex. Sphere,ellipsoids,tori,paraboloids,hyperboloids Sphere-definition-equations-diagram Sphere A spherical surface with radius ‗r‘ centered on the coordinate origin is defined as a set of points(x,y,z) that satisfy the equation x2 + y2 + z2 = r2 In parametric form, x = r CosΦCosΘ y = r Cos ΦSinΘ z = r Sin Φ

Ellipsoid-definition-equations-diagram Ellipsoid Extension of spherical surface ,where the radii in three mutually perpendicular directions have different values 2 2 2 (x/rx) + (y/ry) + (z/rz) = 1

5. i) A cube has its vertices located at A(0,0,10) B(10,0,10) C (10,10,10) D(0,10,10) E(90,0,0) F(10,0,0) G(10,10,0) H(0,10,0). The Y axis is vertical and Z axis is oriented towards the viewer. The cube is being viewed from point (0,20,80). Calculate the perspective view of the cube on XY plane.(8) Perspective projections Definition Example with diagram Derivation and projection matrix Apply for the values A(0,0,10) B(10,0,10) C (10,10,10) D(0,10,10) E(90,0,0) F(10,0,0) G(10,10,0) H(0,10,0)

ii) Discuss on the various visualization techniques in detail. (8) (AU NOV/DEC 2013 & MAY/JUNE 2014) Visual representation for scalar fields Visual representation for vector fields Visual representation for tensor fields Visual representation for multivariate data fields

6. With suitable examples, explain all 3D transformations. (AU NOV/DEC 2011, MAY/JUNE 2012 IT, NOV/DEC 2012, MAY/JUNE 2012 & MAY/JUNE 2014) Transformation-definition and types Translation-definition-equations-diagram-matrix representation Translation PI = T .P I x = x + tx I y = y + ty I z = z + tz St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 22 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Inverse translation - obtained by negating translation distances Rotation-definition-equations-diagram-matrix representation Rotation To perform rotation we need, An axis Rotation angle +ve rotation angles produce counter clockwise rotation -ve rotation angles produce clockwise rotation Coordinate axis rotation Z-axis, Y-axis and X-axis Z axis rotation xI = xCosΘ – ySinΘ yI = xSinΘ + yCosΘ zI = z I P = Rz(Θ).P Scaling Reflection Shearing -definition Scaling: alters the size of the object coordinate values of the vertex is multiplied by scaling factors Sx & Sy I x = x . Sx I y = y . Sy Reflection produces mirror image obtained by rotating the object 180 degrees about the reflection axis. Shear distorts the shape of an object. can be with respect to both axis

Reflection-definition-equations-diagram-matrix representation Shearing-definition-equations-diagram-matrix representation

7. i) Calculate the new coordinates of a block rotated about x axis by an angle of = 30 degrees. The original coordinates of the block are given relative to the global xyz axis system. (8) A(1,1,2) B(2,1,2) C(2,2,2) D(1,2,2) E(1,1,1) F(2,1,1) G(2,2,1) H(1,2,1) Transformation-definition and types Rotation-definition-equations-diagram-matrix representation Apply the rotation equations for the set of vertices A(1,1,2) B(2,1,2) C(2,2,2) D(1,2,2) E(1,1,1) F(2,1,1) G(2,2,1) H(1,2,1)

ii) Discuss on Area subdivision method of hidden surface identification algorithms.(8) (AU NOV/DEC 2013) - Successively divide the total viewing area into smaller and smaller rectangles until each small area is the projection of part of a single visible surface or no surface at all Types of relationships b/w a surface & a specified area boundary  Surrounding surface  Overlapping surface  Inside surface  Outside surface Tests performed to determine the subdivision of an area All surfaces are outside surfaces with respect to the area Only one inside overlapping or surrounding surface is in the area A surrounding surface obscures all other surfaces within the area boundaries If any one of these tests / conditions is true the specified area is not subdivided St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 23 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

8. Write notes on 3D viewing. (AU NOV/DEC 2012) Viewing – transfers positions from world coordinate plane to pixels positions in the plane of the output device Viewing pipeline: MC  MT WC VT VC PT PC WT DC Transformation from world to viewing coordinates: sequences  Translate view reference point to the origin of world coordinate system

 Apply rotation to align xv , yv , zv axes with the world xw ,yw ,zw axes

9. Discuss the visible surface detection methods in detail. (AU MAY/JUNE 2014 & NOV/DEC 2014) Back face detection A point (x,y,z) is inside a polygon surface with plane parameters A,B,C and D if Ax+By+Cz+D < 0 When an inside point is along the line of sight to the surface , the polygon must be a back-face Conditions for back face: A polygon is a back-face if V.N > 0

Depth buffer method Steps 1. Initialize the depth buffer and refresh buffer so that for all the buffer positions (x,y) depth(x,y) = 0 , refresh(x,y) = I backgnd 2. For each position on each polygon surface listed on the polygon table calculate the depth value and compare the depth vaslue to the previously stored values in the depth buffer to determine visibility Let the calculated depth be Z for each position (x,y) If Z > depth(x,y) , then set ) depth(x,y) = Z , refresh(x,y) = Isurf (x,y) Scan-line method-concept-example-diagram  Extension of scan line algorithm for filling polygon interiors  All polygon surfaces intersecting the scan lines are examined  Depth calculations are made for each overlapping surface across every scan line to determine the nearest surface to the view plane  After the visible surface is determined the intensity value for the position is entered into the refresh buffer

Depth-sorting method Steps: Surfaces are ordered according to the largest Z value Surface S with greatest depth is compared with other surfaces to determine whether there are any overlaps in depth If no depth overlap occurs , S is scan converted This process is repeated for the next surface as long as no overlap occurs If depth overlaps occurred additional comparisons are used to determine whether reordering of surfaces are needed or not Ray casting method - it is a variation of depth buffer method - process pixels one at a time and calculate depths for all surfaces along the projection path to that pixel Wireframe method visible edges are displayed and hidden edges are either eliminated or displayed differently from the visible edges .Procedures for determining visibility of object edges are referred to as wireframe visibility methods / visible line detection methods / hidden line detection methods

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 24 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

10. i) Determine the blending function for Uniform periodic B spline curve for n=4 d=4. (8) B-spline definition Equation for B-spline Uniform periodic function Substitute the values n=4 and d=4

ii) Explain any one visible surface identification algorithm. (8) (AU MAY/JUNE 2013) Depth buffer method Depth buffer method Steps 3. Initialize the depth buffer and refresh buffer so that for all the buffer positions (x,y) depth(x,y) = 0 , refresh(x,y) = I backgnd 4. For each position on each polygon surface listed on the polygon table calculate the depth value and compare the depth vaslue to the previously stored values in the depth buffer to determine visibility Let the calculated depth be Z for each position (x,y) If Z > depth(x,y) , then set ) depth(x,y) = Z , refresh(x,y) = Isurf (x,y)

11. Explain a method to rotate a 3D object above an axis that is not parallel to the coordinate axis with a neat block diagram and derive the transformation matrix for the same. (AU MAY/JUNE 2013)

Perform  Translation (make rotation axis passes through coordinate origin)  Rotation (make rotation axis coincide with one of the coordinate axes)  Specified rotation  Inverse rotation  Inverse translation UNIT III GRAPHICS PROGRAMMING 1. What is a color model? A color model is a method for explaining the properties or behavior of color within some particular context. Example: XYZ model, RGB model. 2. Define intensity of light, brightness and hue. Intensity is the radiant energy emitted per unit time, per unit solid angle, and per unit projected area of source. Brightness is defined as the perceived intensity of the light. The perceived light has a dominant frequency (or dominant wavelength). The dominant frequency is also called as hue or simply as color. 3. What is purity of light? Define purity or saturation. Purity describes how washed out or how ―pure‖ the color of the light appears. Pastels and pale colors are described as less pure. Purity describes how washed out or how "pure" the color of the light appears. 4. Define chromaticity and intensity. The term chromacity is used to refer collectively to the two properties describing color characteristics: purity and dominant frequency. Intensity is the radiant energy emitted per unit time, per unit solid angle, and p:r unit projected area of the source. 5. Define complementary colors and primary colors. If the two color sources combine to produce white light, they are referred to as 'complementary colors. Examples of complementary color pairs are red and cyan, green and magenta, and blue and yellow. The two or three colors used to produce other colors in a color model are referred to as primary colors. 6. State the use of chromaticity diagram. Comparing color gamuts for different sets of primaries. Identifying complementary colors. Determining dominant wavelength and purity of a given color. 7. How is the color of an object determined?

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 25 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 When white light is incident upon an object, some frequencies are reflected and some are absorbed by the object. The combination of frequencies present in the reflected light determines what we perceive as the color of the object. 8. Explain about CMY model. A color model defined with the primary colors cyan, magenta and yellow is useful for describing color output to hard copy devices. 9. What is animation? (AU NOV/DEC 2011) Computer animation generally refers to any time sequence of visual changes in a scene. In addition to changing object positions with translations or rotations, a computer generated animation could display time variations in object size, color, transparency or surface texture. Animations often transition from one object shape to another. 10. Draw the color model HLS double cone. (AU MAY/JUNE 2013)

11. How will you convert from YIQ to RGB color model? (AU MAY/JUNE 2012 IT) Conversion from YIQ space to RGB space is done with the inverse matrix transformation:

=

12. State the difference between CMY and HSV color models. (AU NOV/DEC 2012 & NOV/DEC 2014) CMY Model HSV Model A color model defined with the primary colors The HSV model uses color descriptors that have a cyan, magenta and yellow (CMY) is useful for more natural appeal to the user. Color parameters in describing color output to hard-copy devices. this model are hue (H), saturation (S) and value(V). Hard-copy devices such as plotters produce a color To give color specification, a user selects a spectral picture by coating a paper with color pigments. color and the amounts of black and white that are to be added to obtain different shades, tints and tones 13. What are subtractive colors? (AU MAY/JUNE 2012) In CMY color model, colors are seen by reflected light a subtractive process. Cyan can be formed by adding green and blue light. Therefore, when white light is reflected from cyan-colored ink, the reflected light must have no red component. The red light is absorbed or subtracted by the ink. Similarly magenta ink subtracts the green component from incident light and yellow subtracts the blue component. 14. Mention the steps in animation sequence. Storyboard layout, Object definitions, Key-frame specifications, Generation of in-between frame 15. Explain about frame-by-frame animation. Frame-by-frame animation, each frame of the scene is separately generated and stored. Later the frames can be recorded on film or they can be consecutively displayed in ―real time playback‖ mode. 16. Explain about story board.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 26 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 The storyboard is an outline of the action. It defines the motion sequence as a set of basic events that are to take place. Depending on the type of animation to be produced, the storyboard could consist of a set of rough sketches or it could be a list of the basic ideas for the motion. 17. Define keyframes. (AU NOV/DEC 2011 & MAY/JUNE 2014) A key frame is a detailed drawing of the scene at a certain time in the animation sequence. Within each key frame, each object is positioned according to the time for that frame. Some key frames are chosen at extreme positions in action; others are spaced so that the time interval between key frames is not too great. More key frames are specified for intricate motions than for simple, slowly varying motions. 18. What are in between frames? In-betweens are the intermediate frames between the key frames. The nurnber of in-betweens needed is determined by the media to be used to display the animation. Film requires 24 frames per second, and graphics terminals are refreshed at the rate of 30 to 60 frames per second. 19. List any four real time animation techniques(AU NOV/DEC 2013) Write down the different types of animation. (AU NOV/DEC 2014) The different types of animation are: . Raster animation  Raster operations: generate real-time animation in limited applications using raster operations.  Color-table transformations: animate objects along 2D motion paths . Key-frame system: specialized animation languages designed to generate the in-between frames from user specified key frames. . Parameterized systems: allow object motion characteristics to be specified as part of the object definitions. The adjustable parameter control such as object characteristics as degrees of freedom, motion limitations and allowable shape changes. . Scripting systems: allow object specifications and animation sequences to be defined with a user- input script. 20. What are keyframe systems? (AU NOV/DEC 2012) Key-frame systems are specialized animation languages designed to generate the in-between frames from user specified key frames. Each object in the scene is defined as a set of rigid bodies connected at the joints and with a limited number of degrees of freedom. In-between frames are generated from the specification of two or more fey frames. Motion paths can be given by kinematic description as a set of spline curves or physically based by specifying the forces acting on the objects to be animated. 21. Explain about morphing. Transformation of object shape from one form to another is called morphing. 22. Mention some input graphics primitives. String, choice, valuator, locator and pick. 23. Mention some physical input devices. Keyboard, buttons, mouse, tablet, joystick and trackball, knobs, space ball and data glove 24. What are openGLdatatypes? Glbyte, Glshort, Glint, Glsizei, Glfloat, Glclampf, Gldouble, Glboolean 25. List out basic graphics primitives in OpenGL. (AU MAY/JUNE 2014) glBegin() … glEnd() Primitives glVertex2f() glVertex3f() The parameter mode of the function glBegin can be one of the following: GL_POINTS GL_TRIANGLES GL_QUAD_STRIP GL_LINES GL_TRIANGLE_STRIP GL_POLYGON GL_LINE_STRIP GL_TRIANGLE_FAN GL_LINE_LOOP GL_QUADS 26. Window to viewport transformation. Sx=Ax+C and sy=By+D with A=V.r-V.l/W.r-W.l,C=V.l-AW.l and B=V.t-V.b/W.t-W.b,D=V.b-BW.b 27. List some functions to draw some objects.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 27 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Cube, sphere, torus, teapot. 28. How are mouse data sent to an OpenGL application? (AU NOV/DEC 2013) glutMouseFunc(myMouse) which registers myMouse() with an event that occurs when the mouse button is pressed or released. void myMouse(int button , int state, int x ,int y); glutMouseFunc(myMovedMouse) which registers myMovedMouse() with the event that occurs when the mouse is moved while one of the button is pressed. PART B 1. Explain briefly the RGB color model. (AU NOV/DEC 2014) Color model-basic definition RGB color model • Colors are displayed based on the theory of vision ( eyes perceive colors through the stimulation of three visual pigments in the cones of the retina) • It is an additive model • Uses Red, Green and Blue as primary colors • Represented by an unit cube defined on the R, G and B axes • The origin represents black and the vertex with coordinates(1,1,1) represents white • Any color Cλ can be represented as RGB components as Cλ = RR + GG + BB RGB color components RGB color model defined with color cube

2. Write notes on RGB and HSV color models. (AU NOV/DEC 2011) Color model-basic definition RGB color model • Colors are displayed based on the theory of vision ( eyes perceive colors through the stimulation of three visual pigments in the cones of the retina) • It is an additive model • Uses Red, Green and Blue as primary colors • Represented by an unit cube defined on the R, G and B axes • The origin represents black and the vertex with coordinates(1,1,1) represents white • Any color Cλ can be represented as RGB components as Cλ = RR + GG + BB RGB color components RGB color model defined with color cube

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 28 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 HSV color model Color parameters-hue (H) saturation (S) and value (V) The HSV hexcone Cross section of the HSV hexcone • Color parameters used are • hue • saturation • value • Color is described by adding either black or white to the pure hue • Adding black decreases V while S remains constant • Adding white decreases S while V remains constant • Hue is represented as an angle about vertical axis ranging from 0 degree to 360 degrees • S varies from 0 to 1 V varies from 0 to 1

3. Compare and contrast between RGB and CMY color models. (AU MAY/JUNE 2012) RGB color model Color model-basic definition RGB color model • Colors are displayed based on the theory of vision ( eyes perceive colors through the stimulation of three visual pigments in the cones of the retina) • It is an additive model • Uses Red, Green and Blue as primary colors • Represented by an unit cube defined on the R, G and B axes • The origin represents black and the vertex with coordinates(1,1,1) represents white • Any color Cλ can be represented as RGB components as Cλ = RR + GG + BB RGB color components RGB color model defined with color cube

CMY color model Basic colors The CMY color model defined with subtractive process inside a unit cube • Based on subtractive process • Primary colors are cyan , magenta , yellow • Useful for describing color output to hard copy devices • Color picture is produced by coating a paper with color pigments

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 29 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 • The printing process generates a color print with a collection of four ink dots ( one each for the primary & one for black) RGB to CMY transformation matrix-CMY to RGB transformation matrix C 1 R M = 1 - G Y 1 B

4. Briefly explain different color models in detail(AU MAY/JUNE 2013, NOV/DEC 2013 & MAY/JUNE 2014) RGB color model RGB color model • Colors are displayed based on the theory of vision ( eyes perceive colors through the stimulation of three visual pigments in the cones of the retina) • It is an additive model • Uses Red, Green and Blue as primary colors • Represented by an unit cube defined on the R, G and B axes • The origin represents black and the vertex with coordinates(1,1,1) represents white • Any color Cλ can be represented as RGB components as Cλ = RR + GG + BB CMY color model The CMY color model defined with subtractive process inside a unit cube • Based on subtractive process • Primary colors are cyan , magenta , yellow • Useful for describing color output to hard copy devices • Color picture is produced by coating a paper with color pigments • The printing process generates a color print with a collection of four ink dots ( one each for the primary & one for black) RGB to CMY transformation matrix-CMY to RGB transformation matrix HSV color model Color parameters-hue (H) saturation (S) and value (V) The HSV hexcone Cross section of the HSV hexcone

YIQ color model Basic concept-Parameters used RGB to YIQ conversion transformation matrix YIQ to RGB conversion transformation matrix

5. i) Explain in detail the CMY color model. (8) CMY color model The CMY color model defined with subtractive process inside a unit cube • Based on subtractive process • Primary colors are cyan , magenta , yellow

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 30 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 • Useful for describing color output to hard copy devices • Color picture is produced by coating a paper with color pigments • The printing process generates a color print with a collection of four ink dots ( one each for the primary & one for black) RGB to CMY transformation matrix-CMY to RGB transformation matrix

ii) Mention the salient features of raster animation. (8) (AU MAY/JUNE 2012 IT) & AU NOV/DEC 2014) Raster animation-definition • This is the most common animation technique • Frames are copied very fast from off-screen memory to the frame buffer • Copying usually done with bitBLT-type operations • Copying can be applied to – complete frames – only parts of the frame which contain some movement Example with diagram Procedure A part of the frame in the frame buffer needs to be erased The static part of the frame is re-projected as a whole, and the animated part is over-projected

6. Discuss the computer animation techniques. (AU NOV/DEC 2012) Computer animation-definition Raster animations-concept • This is the most common animation technique • Frames are copied very fast from off-screen memory to the frame buffer • Copying usually done with bitBLT-type operations • Copying can be applied to – complete frames – only parts of the frame which contain some movement Example with diagram Procedure A part of the frame in the frame buffer needs to be erased The static part of the frame is re-projected as a whole, and the animated part is over-projected Keyframe systems- concept • Compute first a small number of key frames • Interpolate the remaining frames in-between these key frames (in-betweening) • Key frames can be computed – at equal time intervals – according to some other rules – for example when the direction of the path changes rapidly

7. Explain in detail about morphing. Morphing is an image processing technique typically used as an animation tool for the metamorphosis from one image to another. The whole metamorphosis from one image to the other consists of fading out the source image and fading in the destination image. Thus, the early images in the sequence are much like the source image and the later images are more like the destination image. The middle image of the sequence is the average of the source image distorted halfway toward the destination image and the destination image distorted halfway back to the source image. This middle image is rather important for the whole morphing process. If it looks good then probably the entire animated sequence will look good. For example, when morphing between faces, the middle "face" often looks strikingly "life-like" but is neither the first nor the second person in the image.

8. Discuss the basic OPENGL operations. (AU NOV/DEC 2011) & (AU NOV/DEC 2014) St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 31 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 OpenGL provides tools for drawing all output primitives The o/p primitives are defined by one or more vertices To draw an object in OpenGL pass a list of vertices The vertices list must occur between two OpenGL function calls glBegin() and glEnd() Ex. To draw three points on(100,50),(100,130) &(150,130) the command sequence is glBegin(GL_POINTS); glVertex2i(100,50); glVertex2i(100,130); glVertex2i(150,130); glEnd(); dot constellation is some pattern of dots or points Ex. Sierpinski gasket Procedure • Choose 3 fixed points T0,T1,T2 to form some triangle • Choose the initial point P0 to be drawn by selecting one of the point T0,T1 & T2 at random o Now iterate the following steps until pattern is satisfyingly filled in • Choose one of the 3 points T0,T1 & T2 at random call it T • Construct the next point Pk as the midpoint between T and previously found point Pk-1 • Draw Pk using drawDot()

9. Discuss the methods to draw 3D objects and 3D scenes (AU MAY/JUNE 2014 & NOV/DEC 2014) Explain with an example code. (AU MAY/JUNE 2012 IT & MAY/JUNE 2012 & MAY/JUNE 2013)) The graphics package implemented by OpenGL does its major work through matrix transformations OpenGL pipeline The vertices of the objects are multiplied by the various matrices like the modelview matrix, projection matrix and viewport matrix and then they are clipped if necessary and after clipping the survived vertices are mapped onto the viewport SDL – Scene Description Language Tool to describe a scene Defines a scene class Scene class supports the reading of the SDL file & the drawing of the objects described in the file read( ) method of the secen class is used to read the scene file glBegin(GL_LINE_LOOP); glVertex2i(20,10); glVertex2i(50,10); glVertex2i(20,80); glVertex2i(50,80); glEnd(); glFlush();

10. Discuss the methods used in OPENGL for handling a window and also write a simple program to display a window on the screen. (AU NOV/DEC 2013). void main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE |GLUT_RGB): glutInitWindowSize(640,480); glutInitWindowPosition(100,150); glutCreateWindow(―my first attempt); // register call back functions glutDisplayFunc(myDisplay); glutReshapeFunc(myReshape); St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 32 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 glutMouseFunc(myMouse); glutKeyboardFunc(myKeyboard); myInit(); glutMainLoop(); }

UNIT IV RENDERING 1. What is a shading model? Define shading. (AU MAY/JUNE 2012) What do you mean by shading of objects? (AU NOV/DEC 2011) Shading attempts to model how light that emanates from light sources would interact with objects in a scene. Usually it does not try to simulate all of the physical principles having to do with the scattering and reflection of light. 2. Differentiate flat and smooth shading. (AU MAY/JUNE 2012 IT) Flat Shading Smooth Shading A calculation of how much light is scattered from Smooth shading attempts to de-emphasize edges each face is computed at a single point, so all between faces by computing colors at more points points on a face are rendered with the same gray on each face. level. Edges between faces appear more pronounced than The variation in gray levels is much smoother and they would be on an actual physical objects the edges of the polygon disappear, giving the impression of an even surface. 3. What is meant by flat shading? (AU MAY/JUNE 2014 & NOV/DEC 2014) It is a shading technique in which the entire face is filled with a single color that was computed at only one vertex . It is employed when the face is flat and the light source is far distant from the face. 4. Define flat shading and Gouraud shading. A calculation of how much light is scattered from each face is computed at a single point, so all points on a face are rendered with the same gray level is flat shading. In Gouraud shading,different points of a face are drawn with different gray levels found through an interpolation scheme. 5. Which shading model is faster and easier to calculate? Why? (AU NOV/DEC 2103) Flat shading is faster and easier to calculate because the entire face is drawn with the same color. In this method although a color is passed down the pipeline as part of each vertex of the face, the painting algorithm uses only one color value. 6. What is Achromatic light? It has brightness, but no color. Achromatic light is only a shade of gray; hence it is described by a single value: its intensity. 7. What are the two types of light sources that illuminate the objects in a scene? The two light sources are point light source and ambient light. 8. What are the different ways by which the incident light interacts with the surface? The three different ways are: some is absorbed by the surface and is converted to heat, some is reflected from the surface and some is transmitted into the interior of the object, as in the case of a piece of glass. 9. Define blackbody. If the entire incident light is absorbed, the object appears black and is known as blackbody. 10. What are the types of reflection of incident light? (AU NOV/DEC 2013) The two types are diffuse scattering and specular reflections.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 33 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 11. What are the three vectors to be found, to compute the diffuse and specular components of light? The three vectors are: the vector m to the surface at P, the vector v from P to the viewer‘s eye, the vector s from P to the light source. 12. What is specular reflection? Real objects do not scatter light uniformly in all directions, so a specular component is added to the shading model. Specular reflection causes highlights, which can add significantly to the realism of a picture when objects are shiny. 13. What is tiler? A polygon filling routine is sometimes called a tiler, because it moves over the polygon pixel by pixel, coloring each pixel appropriately. The pixels are visited in regular order, usually scan line by scan line from bottom to top and across each scan line left to right. 14. What are the principal types of smooth shading? The two principal types of smooth shading are Gouraud shading and Phong shading. 15. Define texture pattern. (AU NOV/DEC 2011, NOV/DEC 2012, MAY/JUNE 2012, MAY/JUNE 2014 & NOV/DEC 2014) Texture can add realism to objects. These textures can make various surfaces appear to be made of some material such as wood, marble or copper. Images can be ―wrapped around‖ an object like a label. 16. How do you add texture to faces? (AU MAY/JUNE 2014) . Pasting the texture onto a flat surface . Rendering the texture . Wrapping texture on curved surfaces . 17. What are the most common sources of textures? What are bitmap textures and procedural textures? The most common sources of textures are bitmap textures and procedural textures. Textures are often formed by bitmap representation of images. Such representation consists of an array of color values, often called as texels. This is called bitmap texture. Procedural texturesdefine texture by a mathematical function or procedure. 18. Define texture space. Texture space is traditionally marked off by parameters named s and t. The function of texture(s,t) produces a color or intensity value for each value of s and t between 0 and 1. 19. What is reflection mapping? Mention its types. The class of techniques known as reflection mapping can significantly improve the realism of pictures, particularly animation. The basic idea is to see reflection in an object that suggest the ―world‖ surrounding that object.The types are: chrome mapping and environment mapping. 20. Define chrome mapping. A rough and usually blurry image that suggests that surrounding environment is reflected in the object, as a surface coated with chrome. 21. Define environment mapping. A recognizable image of the surrounding environment is seen reflected in the object. We get valuable visual cues from such reflections, particularly when the object moves about. 22. What is ? It is a technique to give a surface a wrinkled or dimpled appearance without struggling to model the dimple itself. 23. How to create a glowing object? The visible intensity I is set equal to the texture value at each spot: I=texture(s,t). The object then appears to emit light or glow. Lower texture values emit less light and higher texture values emit more light. 24. What is Phong shading? Phong shading finds a normal vector at each point on the face of the object and then applies the shading model there to find the color. Compute the normal vector at each pixel by interpolating the normal vectors at the vertices of the polygon.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 34 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 25. What is a shadow? (AU NOV/DEC 2012) Shadow adds more realism to objects. The way one object casts a shadow on another object gives important visual cues as to how the two objects are positioned with respect to each other. Shadows are the darker portions in a scene which is formed by obstruction of light by an object. 26. How are shadow areas displayed? (AU MAY/JUNE 2012 IT) First compute the shape of the shadow being cast. It is determined by the projections of each of the faces of the object onto the plane of the floor, using light source as center of projection. After drawing the plane by the use of ambient, diffuse and specular light contributions, draw the projections using only ambient light. This will draw the shadow in the right shape and color. Finally draw the object. 27. Define rendering. (AU MAY/JUNE 2013) It is the added realism in displays by setting the surface intensity of objects according to the lighting conditions in the scene and according to the assigned surface characteristics. 28. What is dithering? (AU MAY/JUNE 2013) It refers to techniques for approximating halftones without reducing resolution as pixel grid patterns do. 29. What are the stages of rendering in creating shadows? The stages are: loading shadow buffer and rendering the scene. PART B 1. Explain about shading models. (AU MAY/JUNE 2012) Shading Model explains the scattering / reflecting of light from a surface Flat Shading The entire face is filled with a color that was computed at only one vertex OpenGL command glShadeModel(GL_FLAT); Smooth Shading It deemphasizes the edges between faces by computing colors at more points on each face Types Gouraud shading - Computes a different value of c (color) for each pixel - For each scan line find  The color at leftmost pixel (colorleft ) by linear interpolation of colors at the top and bottom of the left edge of the polygon  The color at the rightmost pixel (colorright ) by linear interpolation of colors at the top and bottom of the right edge of the polygon - The color at pixel x is obtained by c(x) = lerp( colorleft , colorright , x-xleft /xright - x left ) To increase the efficiency of the fill , this color is computed incrementally at each pixel c(x+1) = c(x) + colorright - colorleft / xright - x left Phong shading OpenGL performs only Gouraud shading  Find the normal vector at each point on the face of the object and then apply shading model to find the color  Normal vector at each point / pixel is computed by interpolating the normal vectors at the vertices of the polygon  For each scan line find the vectors mleft and mright by linear interpolation  Interpolate mleft and mrightto find the normal vector at each pixel position  Normalize the interpolated vector to be used for shading calculation to form the color at the pixel position

2. Give an account about specular reflection. Specular reflection

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 35 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Incident light does not penetrate the object & is reflected directly from the outer surface of the object and gives rise to highlights Mirror like reflection and is highly directional Models of specular reflection Simple model reflected light has same color as incident light Complex model color of light varies over the highlights Total light relected from a surface in a direction . Total light reflected = Diffuse component + Specular component Geometric Ingredients for finding Reflected light • Normal vector, m to the surface • Vector v from the surface P to the viewer‘s eye • Vector s from the surface P to the light source Specular Reflection causes highlights Phong model  discusses the behavior of specular light  used when the object is made up of shiny plastic / glass The amount of light reflected is greatest in the direction of a perfect mirror reflection , r, where the angle of incidence equals the angle of reflection f Isp = (Isρs ) ( r.v/|r||v|) if r.v is ‗-‘ve Isp = 0 , f choosen experimentally from 1 to 200 Alternative approach find halfway between ‗s‘ and ‗v‘ ( i.e) h f Isp = (Isρs ) max (0, h.m/|h||m|) Role of ambient light Ambient light – background glow that exists in the environment Ambient light source spreads light uniformly in all directions Combining Light Contributions f I= Iaρa + Idρd * lambert + Ispρs * phong Adding color f Ir= Iarρar + Idrρdr * lambert + Isprρsr * phong f Ig = Iagρag + Idgρdg * lambert + Ispgρsg * phong f Ib= Iabρab + Idbρdb * lambert + Ispbρsb * phong

3. Differentiate flat and smooth shading models. (AU NOV/DEC 2012) Compare Flat Shading and Smooth shading with respect to their characteristics and types. (AU NOV/DEC 2013) Explain the steps involved in Smooth and Flat shading. (AU NOV/DEC 2014) Shading Model explains the scattering / reflecting of light from a surface Flat Shading The entire face is filled with a color that was computed at only one vertex OpenGL command glShadeModel(GL_FLAT); Smooth Shading It deemphasizes the edges between faces by computing colors at more points on each face

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 36 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Types Gouraud shading Computes a different value of c (color) for each pixel For each scan line find The color at leftmost pixel (colorleft ) by linear interpolation of colors at the top and bottom of the left edge of the polygon The color at the rightmost pixel (colorright ) by linear interpolation of colors at the top and bottom of the right edge of the polygon The color at pixel x is obtained by c(x) = lerp( colorleft , colorright , x-xleft /xright - x left ) To increase the efficiency of the fill , this color is computed incrementally at each pixel c(x+1) = c(x) + colorright - colorleft / xright - x left Phong shading OpenGL performs only Gouraud shading  Find the normal vector at each point on the face of the object and then apply shading model to find the color  Normal vector at each point / pixel is computed by interpolating the normal vectors at the vertices of the polygon  For each scan line find the vectors mleft and mright by linear interpolation  Interpolate mleft and mrightto find the normal vector at each pixel position  Normalize the interpolated vector to be used for shading calculation to form the color at the pixel position

4. Give an account of creating shaded objects. (AU MAY/JUNE 2012 IT) Discuss about creation, rendering textures and drawing shadows for shaded objects. (AU MAY/JUNE 2014) Shadow buffer method Shadow buffer – auxiliary second depth buffer contains depth picture of a scene from the point of view of light source - Employs a shadow buffer for each light source Condition: Any point that is hidden from the light source must be in a shadow Rendering: 2 stages 1. Loading shadow buffer 2. Rendering the scene Loading Shadow Buffer Shadow buffer is initialized with 1.0 in each element, the largest pseudo depth Through a camera positioned at the light source each of the faces in the scene is rasterized but only the pseudo depth of the point on the face is tested Each element in the shadow buffer now keep track of the smallest pseudo depth seen so far whenever the objects move relative to light source shadow buffer has to be recalculated

Rendering the scene Each face in the scene is rendered by the eye camera. If the eye camera sees the point P through pixel p[c][r],rendering p[c][r] finds (i) pseudo depth ,D from the source to P (ii) index location [i][j] in shadow buffer (ii) value d[i][j] stored in shadow buffer If d[i][j] is < than D, point P is in shadow set p[c][r] using ambient light If d[i][j] is > than D, point P is not in shadow set p[c][r] using ambient , diffuse & specular light

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 37 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Rendering the texture in a face Approach similar to Gouraud Shading - Proceed across the face pixel by pixel - For each pixel . determine the corresponding texture coordinates (s,t) . Access the texture . Set the pixel to the proper texture color When moving across the scan line compute (sleft,tleft ) and (sright , tright) for each scan line in a rapid incremental fashion and interpolate between these values

5. Explain Gouraud shading technique and write the deficiencies in that method and how it is rectified using Phong shading technique.(AU MAY/JUNE 2013) Gouraud shading - Computes a different value of c (color) for each pixel - For each scan line find  The color at leftmost pixel (colorleft ) by linear interpolation of colors at the top and bottom of the left edge of the polygon  The color at the rightmost pixel (colorright ) by linear interpolation of colors at the top and bottom of the right edge of the polygon - The color at pixel x is obtained by c(x) = lerp( colorleft , colorright , x-xleft /xright - x left ) To increase the efficiency of the fill , this color is computed incrementally at each pixel c(x+1) = c(x) + colorright - colorleft / xright - x left Phong shading OpenGL performs only Gouraud shading  Find the normal vector at each point on the face of the object and then apply shading model to find the color  Normal vector at each point / pixel is computed by interpolating the normal vectors at the vertices of the polygon  For each scan line find the vectors mleft and mright by linear interpolation  Interpolate mleft and mrightto find the normal vector at each pixel position  Normalize the interpolated vector to be used for shading calculation to form the color at the pixel position

6. Explain about adding texture to faces of real objects (AU MAY/JUNE 2012 IT & NOV/DEC 2013) &(AU NOV/DEC 2014) Texture function  texture(s,t)  Produces a color / intensity value for each value of ‗s‘ and ‗t‘ between ‗0‘ and ‗1‘ Sources of texture  Bitmaps  Computed functions / procedural textures Bitmap Textures - Textures are formed from bitmap representations of images - This representation consists of an array of color values called texels (txtr[c][r]) Bitmap Texture color3 texture(float s, float r) { returntxtr[(int)(s*c)][(int)(t*r)]; } Procedural Texture - Defined by mathematical function / procedure float fakeSphere(float s , float t) St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 38 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 { float r = sqrt((s - 0.5) * (s - 0.5) + (t - 0.5) * (t - 0.5)); if (r < 0.3 ) return 1 - r/0.3; // sphere intensity else return 0.2; //dark background }

Pasting Texture onto a Flat Face  glTexCoord2f( ) function used to associate a point in texture space , P = (si , ti ) with each vertex Vi of the face  glTexCoord2f( ) function usually precedes the call to glVertex3f( ) function Rendering the texture in a face Approach similar to Gouraud Shading - Proceed across the face pixel by pixel - For each pixel . determine the corresponding texture coordinates (s,t) . Access the texture . Set the pixel to the proper texture color When moving across the scan line compute (sleft,tleft ) and (sright , tright) for each scan line in a rapid incremental fashion and interpolate between these values Wrapping Texture on Curved Surfaces 1. Wrapping a label around a can -Model the can/cylinder as a polygonal mesh ( walls are rectangular strips ) -Extend the label from Θa toΘb in azimuth (angular distance )and from Z a to Z b along Z-axis -For each vertex Vi of each face find the suitable texture coefficient (si ,vi ) and map it onto the face s = Θ - Θa / Θb -Θa , t = Z -Z a / Z b -Z a

th If there are N faces around the cylinder , the i face has the left edge at azimuth Θi = 2Πi / N The upper left vertex has texture coordinates (si , ti ) (si , ti ) = ((2Πi / N -Θa ) / (Θb -Θa ), 1) 2. Shrink wrapping a label onto a surface of revolution Shrink wrapping wrap the texture about an imaginary rubber cylinder & then let the cylinder to collapse , the texture points are now radically slide until it hits the surface of the vase (container) - 3 approaches (i)Associate the texture point Pi with the object point Vi that lies along the normal from Pi ( use texture point‘s normal vector) (ii)Associate the texture point on the imaginary cylinder with vertices on the object by drawing a line from the object‘s centriod C , through the vertex Vi until it intersects with the cylinder (use centriod) (iii)Associate the texture point with the object point by using the normal vector to the object‘s surface ( use object‘s normal vector) 3. Mapping texture onto a sphere - use the linear mapping function If vertex Vi lies at (Θi,Φ) associate it with the texture coordinates (si , ti) = ((Θ -Θi)/ (Θb -Θa ) , (Φ - Φ i)/ (Φ b -Φ a )) 4. Mapping texture to sphere like objects - 3 ways (i) objectcentriod St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 39 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 (ii) object normal (iii) sphere normal

Reflection Mapping Types  Chrome mapping  Environment mapping

7. Explain about adding shadows to objects. (AU MAY/JUNE 2012 IT, NOV/DEC 2013, MAY/JUNE 2014 & NOV/DEC 2014) Methods for computing Shadows 1. Painting the shadow (as texture) 2. Shadow buffer method (removal of the hidden surfaces) Shadows as texture Draw the plane by using ambient, diffuse & specular light contributions and then draw the six projections on the plane using only ambient light Shadow buffer method Shadow buffer – auxiliary second depth buffer contains depth picture of a scene from the point of view of light source - Employs a shadow buffer for each light source Condition: Any point that is hidden from the light source must be in a shadow Rendering: 2 stages 1. Loading shadow buffer 2. Rendering the scene Loading Shadow Buffer Shadow buffer is initialized with 1.0 in each element, the largest pseudo depth Through a camera positioned at the light source each of the faces in the scene is rasterized but only the pseudo depth of the point on the face is tested Each element in the shadow buffer now keep track of the smallest pseudo depth seen so far - whenever the objects move relative to light source shadow buffer has to be recalculated Rendering the scene Each face in the scene is rendered by the eye camera. If the eye camera sees the point P through pixel p[c][r],rendering p[c][r] finds (i) pseudo depth ,D from the source to P (ii) index location [i][j] in shadow buffer (ii) value d[i][j] stored in shadow buffer If d[i][j] is < than D, point P is in shadow set p[c][r] using ambient light If d[i][j] is > than D, point P is not in shadow set p[c][r] using ambient , diffuse & specular light

8. Give an account on drawing shadows. (AU MAY/JUNE 2012 IT & NOV/DEC 2012) Shadow buffer method Shadow buffer – auxiliary second depth buffer contains depth picture of a scene from the point of view of light source - Employs a shadow buffer for each light source Condition: Any point that is hidden from the light source must be in a shadow Rendering: 2 stages 3. Loading shadow buffer 4. Rendering the scene Loading Shadow Buffer St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 40 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Shadow buffer is initialized with 1.0 in each element, the largest pseudo depth Through a camera positioned at the light source each of the faces in the scene is rasterized but only the pseudo depth of the point on the face is tested Each element in the shadow buffer now keep track of the smallest pseudo depth seen so far whenever the objects move relative to light source shadow buffer has to be recalculated

Rendering the scene Each face in the scene is rendered by the eye camera. If the eye camera sees the point P through pixel p[c][r],rendering p[c][r] finds (i) pseudo depth ,D from the source to P (ii) index location [i][j] in shadow buffer (ii) value d[i][j] stored in shadow buffer If d[i][j] is < than D, point P is in shadow set p[c][r] using ambient light If d[i][j] is > than D, point P is not in shadow set p[c][r] using ambient , diffuse & specular light

9. Write down and explain the details to build a camera in a program. (AU NOV/DEC 2011, MAY/JUNE 2014 & NOV/DEC 2014) To have fine control over camera movements we create and manipulate our own camera in a program Steps: 1. Create Camera class 2. Create an object cam Functions: - cam.set(eye,look,up); // initialize the camera - cam.slide(-1,0,-2); // slide camera forward & to left - cam.roll(30); // roll it through 30 degrees - cam.yaw(20); // yaw it through 20 degrees Class Camera { private: Points3 eye; Vector3 u,v,n; double viewAngle,aspect,nearDist,farDist; void setModelViewMatrix(); public: Camera(); void set(Point3 eye , Point3 look , Vector3 up); void roll(float angle); void pitch(float angle); void yaw(float angle); void slide(float deluU, float delV , float delN ); voidsetShape(float vAng , float asp , float nearD , float farD); }; Utility routines - set() acts like gluLookAt() & places the info. of eye, look, up in camera‘s field and communicates with OpenGL - setModelViewMatrix() communicates the MVMatrix to OpenGL void Camera::setModelViewMatrix(void) { float m[16]; Vector3 eVec(eye.x , eye.y , eye.z) m[0] = u.x ; m[4] = u.y ; m[8] = u.z ; m[12] = -eVec.dot(u); St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 41 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 m[1] = v.x ; m[5] = v.y ; m[9] = v.z ; m[13] = -eVec.dot(v); m[2] = n.x ; m[6] = n.y ; m[10] = n.z ; m[14] = -eVec.dot(n); m[3] = 0 ; m[7] = 0 ; m[11] = 0 ; m[15] =1.0; glMatrixMode(GL_MODELVIEW); glLoadMatrixf(m); } void Camera::set(Point3 Eye , Point3 look , Vector3 up) { eye.set(Eye); n.set(eye.x – look.x , eye.y – look.y , eye.z – look.z); u.set(up.cross(n)); // make u = up x n n.normalize(); u.normalize(); v.set(n.cross(u)); // make v = n x u setModelViewMatrix(); // tell OpenGL } Sliding the camera void Camera::slide(float delU , float delV , float delN) { eye.x += delU * u.x + delV * v.x + delN * n.x ; eye.y += delU * u.y + delV * v.y + delN * n.y ; eye.z += delU * u.z + delV * v.z + delN * n.z ; setModelViewMatrix(); } Rotating the camera Void Camera::roll( float angle) { float cs = Cos(3.14159265 / 180 * angle); float sn = Sin(3.14159265 / 180 * angle); Vector3 t = u; u.set(cs * t.x – sn * v.x , cs * t.y – sn * v.y , cs * t.z – sn * v.z ); v.set(sn * t.x + cs * v.x , sn * t.y + cs * v.y , sn * t.z + cs * v.z ); setModelViewMatrix();

10. Explain in detail how texture can be rendered. Total light relected from a surface in a direction Total light reflected = Diffuse component + Specular component Geometric Ingredients for finding Reflected light 1. Normal vector, m to the surface 2. Vector v from the surface P to the viewer‘s eye 3. Vector s from the surface P to the light source Specular Reflection - causes highlights Phong model  discusses the behavior of specular light  used when the object is made up of shiny plastic / glass The amount of light reflected is greatest in the direction of a perfect mirror reflection , r, where the angle of incidence equals the angle of reflection f Isp = (Isρs ) ( r.v/|r||v|) if r.v is ‗-‘ve Isp = 0 , f choosen experimentally from 1 to 200 Alternative approach find halfway between ‗s‘ and ‗v‘ ( i.e) h f Isp = (Isρs ) max (0, h.m/|h||m|) Role of ambient light Ambient light – background glow that exists in the environment Ambient light source spreads light uniformly in all directions St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 42 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Combining Light Contributions f I= Iaρa + Idρd * lambert + Ispρs * phong Adding color f Ir= Iarρar + Idrρdr * lambert + Isprρsr * phong f Ig = Iagρag + Idgρdg * lambert + Ispgρsg * phong f Ib= Iabρab + Idbρdb * lambert + Ispbρsb * phong

Flat Shading The entire face is filled with a color that was computed at only one vertex OpenGL command glShadeModel(GL_FLAT); Smooth Shading It deemphasizes the edges between faces by computing colors at more points on each face Types 1. Gouraud shading - Computes a different value of c (color) for each pixel - For each scan line find  The color at leftmost pixel (colorleft ) by linear interpolation of colors at the top and bottom of the left edge of the polygon  The color at the rightmost pixel (colorright ) by linear interpolation of colors at the top and bottom of the right edge of the polygon - The color at pixel x is obtained by c(x) = lerp( colorleft , colorright , x-xleft /xright - x left ) To increase the efficiency of the fill , this color is computed incrementally at each pixel c(x+1) = c(x) + colorright - colorleft / xright - x left 2. Phong shading OpenGL performs only Gouraud shading  Find the normal vector at each point on the face of the object and then apply shading model to find the color  Normal vector at each point / pixel is computed by interpolating the normal vectors at the vertices of the polygon  For each scan line find the vectors mleft and mright by linear interpolation  Interpolate mleft and mrightto find the normal vector at each pixel position  Normalize the interpolated vector to be used for shading calculation to form the color at the pixel position

UNIT V FRACTALS 1. What are fractals? (AU NOV/DEC 2011, MAY/JUNE 2012 IT & MAY/JUNE 2012) Fractals are those which have the property of a shape that has the same degree of roughness no matter how much it is magnified. A fractal appears ―the same‖ at every scale. No matter how much one enlarges a picture of the curve, it has the same level of detail. 2. Define self-similar. Most of the curves and pictures have a particularly important property: they are self-similar. This means that they appear ―the same‖ at every scale. No matter how much one enlarges a picture of the curve, it has the same level of detail 3. Mention the types of self-similar. The types are: exactly self-similar and statistically self-similar. 4. What is Koch curve? Very complex curves can be fashioned recursively by repeatedly ―refining‖ a simple curve. The simplest is the Koch curve. This curve stirred great interest in the mathematical world because it produces a infinitely long line within a region of finite area.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 43 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 5. What are Peano curves? List down the properties of Peano curves. (AU NOV/DEC 2012 & MAY/JUNE 2014) A fractal curve can in fact ―fill the plane‖ and therefore have a dimension of 2. Such curves are called Peano curves. 6. What is a L-System? A large number of interesting curves can be generated by refining line segments. A particularly simple approach to generating these curves uses so called L-Systems to draw complex curves based on simple set of rules. 7. Mention the dragon rules. The dragon rules are ‗F‘  ‗F‘, ‗X‘  ―X+YF+‖, ‗Y‘  ―-FX-Y‖, atom=‖FX‖ 8. What is space-filling? Such curves have a fractal dimension of 2 and they completely fill a region of space. 9. What are the two famous Peano curves? The two famous Peano curves are: Hilbert and Sierpinski curves. 10. Define fractal trees. Fractal trees provide an interesting family of shapes that resemble actual trees. Such shrubbery can be used to ornament various drawings. 11. What is periodic tiling and dihedral tiling? In periodic tiling, the notion is to take many copies of some shape such as polygon and to fit them together as a jigsaw puzzle so that they cover the entire plane with no gaps. In dihedral tiling, they permit the use of two prototiles and therefore offer many more possibilities. 12. How can a black and white image be described? A black and white image I can be described simply as the set of its black points: I =set of all black points={(x,y) such that (x,y) is coloured black}. 13. What is the “Chaos Game”? It ia also known as the random iteration algorithm which offers a simple nonrecursive way to produce a picture of the attractor of an IFS. 14. What is fractal image compression? The original image is processed to create the list of affine maps, resulting in a greatly compressed representation of the image. 15. What is Mandelbrot set? A very famous fractal shape is obtained from the Mandelbrot set, which is a set of complex values z that do not diverge under the squaring transformation: z0 = z, zk = z2k-1 + z0, k = 1, 2, 3, . . .It is the black inner portion, which appears to consist of a cardioid along with a number of wart like circles glued to it. Its border is complicated and this complexity can be explored by zooming in on a portion of the border. 16. Differentiate Mandelbrot sets and Julia sets. (AU NOV/DEC 2011) Mandelbrot sets Julia sets A very famous fractal shape is obtained from the For some functions, the boundary between those Mandelbrot set, which is a set of complex values z points that move towards infinity and those that that do not diverge under the squaring tend toward a finite limit is a fractal. The boundary transformation: z0 = z, zk = z2k-1 + z0, k = 1, 2, of the fractal object is called the Julia set. 3, . . . It is the black inner portion, which appears to Julia sets are extremely complicated sets of points consist of a cardioid along with a number of wart in the complex plane. There is a different Julia set like circles glued to it. Its border is complicated and Jc for each value of c. this complexity can be explored by zooming in on a portion of the border.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 44 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 17. What is Julia sets? (AU MAY/JUNE 2012 & NOV/DEC 2014) For some functions, the boundary between those points that move towards infinity and those that tend toward a finite limit is a fractal. The boundary of the fractal object is called the Julia set. Julia sets are extremely complicated sets of points in the complex plane. There is a different Julia set Jc for each value of c. 18. Define . (AU NOV/DEC 2014) In computer graphics, ray tracing is a technique for generating an image by tracing the path of light through pixels in an image plane and simulating the effects of its encounters with virtual objects. 19. What are the steps in ray tracing process? How to incorporate texture into a ray tracer? The steps are: build the rc-th ray, fins the intersections with the object, identify intersections that lie close to and in front of the eye, compute the hit point, find the color of the light and place the color in the rc-th pixel.Two principal kinds of texture are used: with image texture a 2D image is pasted onto each surface of the object, with solid texture the object is considered to be carved out of a block of some material. 20. List down the ray tracing methods. (AU MAY/JUNE 2012 IT) The various ray tracing methods are: . Basic ray-tracing algorithm . Ray-surface intersection calculations . Reducing object-intersection calculations . Space-subdivision methods . Antialiased ray tracing . Distributed ray tracing 21. Where does the ray r(t) = (4,1,3) + (-3,-5,-3)t hit the generic plane? (AU NOV/DEC 2013) The generic plane is the xy plane or z = 0 Its implicit form is F(x,y,z) = z The hit point is found to be (1,-4,0) 22. What is wood grain texture? As the distance of points from some axis varies, the function jumps back and forth between two values. This effect can be simulated with the modulo function rings(r)=((int)r)%2 where rings about the z-axis, the radius r=x2+y2. 23. Define refraction of light. When a ray of light strikes a transparent object, a portion of the ray penetrates the object. The ray change direction fromdir to t if the speed of light is different in medium 1 than in medium 2. 24. State Snell’s law.

If the angle of incidence of the ray is 1, Snell‘s law states that the angle of refraction 2 will be sin(2)/c2=sin(1)/c1 25. What is total internal reflection? When the smaller angle gets larger enough, it forces the larger angle to 90o. A larger value is impossible, so no light is transmitted into the second medium. This is called total internal reflection. 26. What are CSG objects? Objects such as lenses and hollow fishbowls, as well as objects with holes are easily formed by combining the generic shapes treated thus far. They are called compound, Boolean or CSG objects. 27. Write down some of the Boolean operations on objects. (AU NOV/DEC 2012) Some Boolean operators used on objects are: union, intersection and difference. 28. How objects are modeled using constructive solid geometry technique? (AU NOV/DEC 2013) According to CSG arbitrarily complex shapes are defined by set operation ( Boolean operation) on similar shapes. Lenses, hallow fish bowls easily formed by combining generic shapes. These objects are called compound, Boolean or CSG objects. Boolean operation include union, intersection and difference 29. What is the motivation of using projection extends? There is a strong motivation for using projection extends for CSG objects, due to the cost of ray tracing them. A projection extend can be built for each node of a CSG object in much the same way as box extends are built.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 45 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 30. Mention the characteristics of fractals.  Infinite detail at every point  Self similarity between object parts 31. Define exact self similarity If a region of a curve is enlarged the enlargement looks exactly like the original 32. Define statistical self similarity If a region is enlarged the enlargement on an average looks like the original 33. How complex curves are fashioned? By successive refinement of simple curve very complex curves can be fashioned 34. How will you generate the Koch curve. th The zero generation shape K0 is a horizontal line of unit length.The curve K1 is generated by dividing K0 into three equal parts and replacing the middle section with a triangular bump.The bump should have sides of length 1/3 so the length of the line is now 4/3.The second order curve K2 is generated by building a bump on each of the 4 line segments of K1 35. Mention the curves generated based on string production. Curves generated based on string production are  Koch curve  Quadratic Koch Island  Hilbert curve  Dragon curve  Gospher hexagonal curve  Sierpinski gasket  Sierpinski arrowhead 36. Mention the Key Ingredients for drawing the curves.  Atom  F-string  X-string  Y-string  Angles in degrees PART B 1. Briefly explain different types of fractals with neat diagram and also explain how to construct fractals and the uses of fractals in computer graphics.(AU MAY/JUNE 2013) Characteristics of a fractal object 1. Infinite detail at every point 2. Self similarity between object parts Types of self similarity  Exact self similarity  Statistical self similarity Exact self similarity if a region of a curve is enlarged the enlargement looks exactly like the original Statistical self similarity if a region is enlarged the enlargement on an average looks like the original Successive refinement of curves by repeatedly refining a simple curve very complex curves can be fashioned Ex. Koch curve Koch curve produces an infinitely long line within a region of finite area Generations Successive generations are denoted by K0 , K1, K2 , … th The zero generation shape K0 is a horizontal line of unit length The curve K1 is generated by dividing K0 into three equal parts and replacing the middle section with a triangular bump St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 46 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 The bump should have sides of length 1/3 so the length of the line is now 4/3 The second order curve K2 is generated by building a bump on each of the 4 line segments of K1 Void drawKoch(double dir , double len , int n) { doubledirRad = 0.0174533 * dir ; // direction in radians if ( n==0) lineRel(len * Cos(dirRad) , len * Sin(dirRad)); else { n--; // reduce the order & length len /=3; drawKoch(dir , len ,n); dir += 60; drawKoch(dir , len ,n); dir -= 120; drawKoch(dir , len ,n); dir += 60; drawKoch(dir , len ,n); } } Fractal Dimension Estimated by box covering method D = log(N) / log(1/r) N = no. of equal segments r = 1/N For Koch curve the fractal dimension is in between 1 & 2 For Peanocurve D is 2

2. Write notes on Peano curves. (AU NOV/DEC 2011 & AU NOV/DEC 2014) Peano curves - Space filling curves (completely fill a region of space ) - Have fractal dimension of 2 Ex. Hilbert curves, Sierpinski curves Polya‘sPeano curve  Generated by replacing each segment of a generation by a right angled elbow  Direction of the elbow alternate in a L , LR , LRLR ,… fashion  To save the current state and to restore characters ‗]‘ and ‗]‘ are added to the language L – Systems • Approach to generate curves • Generate curves based on simple set of rules ( productions) String Production rules F F – F ++ F – F F means forward (1,1) + means turn(A) - means turn(-A)  Means that every F is replaced by F – F ++ F – F Atom – initial string  Production rules are applied to atom to produce the first generation string (S1 )  To generate the second generation string the same production is applied to the first generation string Generation of richer set of curves by adding more rules to string production process richer set of curves can be generated Ex. Dragon curves F F X X + YF + Y  – FX – Y Atom = FX Order1 String S1 Order2 String S2 St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 47 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Atom = FX S1 = FX + YF + S2 = FX + YF ++ – FX – YF +

3. Describe the creation of images by iterated functions. (AU NOV/DEC 2012 & MAY/JUNE 2014) 1. Experimental copier  Take an initial image I0  Produce new image I1 by superimposing several reduced versions of I0  Feed I1 back to the copier to generate I2  Repeat the process to obtain a sequence of images I0, I1, I2,… called orbit of I0 2.S-copier - Superimposes three smaller versions of whatever image is fed onto it and repeated iterations may result in Sierpinski triangle Generating images  The 3 lenses present in the copier reduces the i/p image to one half of its size and moves it to a new position  The reduced and shifted images are superimposed on printed o/p  Each lens performs its own affine transformation IFS – it is a collection of ‗N‘ affine transformations Ti for I = 1,2,…N Theory of copying process Method: - Using the lenses present in the copier draw the o/p image by transforming the points present in the i/p image Working: Let I be the i/p image to the copier, then the i-th lens builds the new set of points denoted by Ti (I) and adds them to the image being produced at the current iteration. The o/p image is obtained by superimposing the three transformed images created by the three lenses o/p image = T1(I) U T2(I) U T3(I) Overall mapping from i/p to o/p is denoted by W(.) W(.) = T1(.) UT2(.) UT3(.) Drawing the k-th iterate Choices of Initial images ( I0 ) 1. Polyline 2. Single point Chaos Game ( Random Iteration Algorithm) • produces the picture of an attractor • produces pictures in a non recursive way Ex. Sierpinski gasket

4. Write notes on Mandelbrot sets. (AU NOV/DEC 2012 & MAY/JUNE 2014)

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 48 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

Computing whether point c is in Mandelbrot Set Idea: Check whether the orbit explodes or not if the orbit explodes then the point is not in M Test for checking: If |dk | value ever exceeds the value of 2 , then the orbit will definitely explode. Dwell: The number of iterations |dk | takes to exceed 2 is called the dwell of the orbit Approach: . Set some upper limit Num for the number of iterations

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 49 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

If |dk | hasn‘t exceeded 2 after Num iterations assume that it will never exceed and conclude that ‗c‘ is in M

Dwell function: For a given value of c = cx +cyi the routine returns the no. of iterations |dk | required to exceed 2 or simply the no. of iterations int dwell (double cx, double cy) { // return true dwell of Num whichever is smaller #define Num 100 doubletmp, dx = cx , dy = cy , fsq = cx * cx + cy * cy; for (int count = 0; count <= Num&&fsq<=4 ; count++) { tmp = dx; // save old real part dx = dx * dx – dy * dy + cx; // new real part dy = 2.0 * tmp * dy +cy ; // new imaginary part fsq = dx * dx + dy * dy ; } return count; // no. of iterations used } Drawing Mandelbrot Sets Techniques:  Assign black to points inside M & white to those outside M  Use a range of colors ( for small value sof ‗d‘ use blue as ‗d‘ approaches ‗Num‘ use red & green component (together form yellow)

5. Write notes on Julia sets. (AU MAY/JUNE 2012 IT & MAY/JUNE 2014) Filled in Julia sets The filed in Julia set at c, Kc , is the set of all starting points whose orbits are finite Difference between Mandelbrot set &filled in Julia set . ‗c‘ can take different values ‗c‘ can take a single value . Use the same starting point 0 use different starting points Basin of attraction: If an orbit starts close enough to an attracting fixed point , it is sucked into that point. The set of points that are sucked in forms a basin of attraction for the fixed point P Types of filled in Julia set 1. Connected 2. Cantor set Julia sets ,Jc For any given value of c, the Julia set Jcis the boundary of filled in Julia set Kc Preimage: . The point just before ‗s‘ in the sequence is called preimage . Preimage is the inverse of the function f(.) = (.)2 + c . The collection of all preimages of any point in Jc is dense in Jc Drawing Julia set Methodology: find a point and place a dot at all of the point‘s preimages Problem: 1. Finding the point 2. Keeping track of all the preimages Solution: . Use backward iteration method Backward iteration method  Choose some point ‗z‘ in complex plane which may / may not in Jc  Begin iteration backwards St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 50 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016  At each iteration choose on e of the two square roots randomly  Produce a new ‗z‘ value  Repeat the process until Jc emerge Pseudo code: do { if ( coin flip is heads ) z = +√ z – c ; else z = - √ z – c ; draw dot at z; }while(not bored);

6. Explain about random fractals. (AU NOV/DEC 2011, MAY/JUNE 2012 & NOV/DEC 2014)

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 51 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

7. Explain about Fractal Geometry. (AU NOV/DEC 2013) Characteristics of a fractal object Infinite detail at every point Self similarity between object parts Types of self similarity Exact self similarity Statistical self similarity Exact self similarity if a region of a curve is enlarged the enlargement looks exactly like the original Statistical self similarity if a region is enlarged the enlargement on an average looks like the original Successive refinement of curves by repeatedly refining a simple curve very complex curves can be fashioned Ex. Koch curve Koch curve produces an infinitely long line within a region of finite area Generations  Successive generations are denoted by K0 , K1, K2 , … th  The zero generation shape K0 is a horizontal line of unit length  The curve K1 is generated by dividing K0 into three equal parts and replacing the middle section with a triangular bump  The bump should have sides of length 1/3 so the length of the line is now 4/3 The second order curve K2 is generated by building a bump on each of the 4 line segments of K1

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 52 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Void drawKoch(double dir , double len , int n) { double dirRad = 0.0174533 * dir ; // direction in radians if ( n==0) lineRel(len * Cos(dirRad) , len * Sin(dirRad)); else { n--; // reduce the order & length len /=3; drawKoch(dir , len ,n); dir += 60; drawKoch(dir , len ,n); dir -= 120; drawKoch(dir , len ,n); dir += 60; drawKoch(dir , len ,n); } }

8. Discuss the ray tracing process with an example (AU NOV/DEC 2013 & MAY/JUNE 2014) Ray Tracing / Ray Casting - Provides a related , powerful approach to render scenes Overview of Ray Tracing Process Pseudo code of a ray tracer: for(int r = 0; r

9. Explain the method for adding surface texture. (AU NOV/DEC 2012 & NOV/DEC 2014) Incorporating texturing into a ray tracer: Types of texture used  Image texture 2D image is pasted onto the surface of the object  Solid texture object is carved out of a block of some material Ray Tracing Objects Composed of Solid Texture To incorporate solid texture into a ray tracer only the texture() function is required The texture can alter the light coming from a surface point in 2 ways 1. Light can be set equal to the texture 2. Texture can modulate ambient & diffuse reflection coefficients Super sampling: Sampling at more points Involves more rays per pixel Techniques: 1. Shooting more rays into regions ( where anti aliasing is needed more ) rays are shot through the four corners of each pixel & the average intensity is found out the average is compared with four individual intensities if the corner intensity differs too much from the average , the pixel is sub divided into quadrants and additional rays are sent through the corners of the quadrant 2. Distributed sampling a random pattern of rays is short into the scene for each pixel and resulting intensities are averaged . A pixel is sub divided into a regular four by four grid and the rays are shot only through the displaced or jittered grid points.

10. Discuss about reflection and transparency. (AU MAY/JUNE 2012 IT) Law of Reflection angle of incidence is equal to the angle of reflection

simplified transparency model algorithms based on stipple patterns and color blending stipple patterns screen-door transparency transparent object is rendered with a fill / stipple pattern, e. g. checkerboard (pattern of opaque and transparent fragments) limited number of fill patterns results in limited number of transparency levels

color blending combine fragment color with the framebuffer content

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 54 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

alpha value describes the opacity of a fragment, 1 - opaque, 0 - transparent stored together with RGB color in a 4D vector (RGBA) blending equation for transparency

over operator αin = 0 - Cold is not changed αin = 1 - Cold is replaced by Cin 0 < αin < 1 - Cold is replaced by a mix of Cin and Cold only the alpha value of the incoming fragment matters

11. Explain how refraction of light in a transparent object changes the view of the three dimensional object (AU NOV/DEC 2013) Transparency of objects transparency is the property of allowing light to pass through something. An object that is transparent can be seen through. That is, what is on the other side of the object can be seen through it. The image you can see through a transparent object is similar to the image you can see without it. It may be changed if the transparent object behaves like a lens. This could change the size or shape of the image. Therefore, when someone says that an organization and its action should be "transparent", it is not the right use of the term. What they actually mean is that these things should be more "visible". If some light can be seen through an object but some of the detail of the image is lost, it is a translucent material. The opposite of transparency is opacity. Refraction of light Refraction is the change in direction of a wave due to a change in its transmission medium. Refraction is essentially a surface phenomenon. The phenomenon is mainly in governance to the law of conservation of energy and momentum. Due to change of medium, the phase velocity of the wave is changed but its frequency remains constant. This is most commonly observed when a wave passes from one medium to another at any angle other than 90° or 0°. Refraction of light is the most commonly observed phenomenon, but any type of wave can refract when it interacts with a medium, for example when sound waves pass from one medium into another or when water waves move into water of a different depth. Refraction is described bySnell's law, which states that for a given pair of media and a wave with a single frequency, the ratio of the sines of the angle of incidence θ1 and angle of refractionθ2 is equivalent to the ratio of phase velocities (v1 / v2) in the two media, or equivalently, to the opposite ratio of the indices of refraction (n2 / n1):

12. Explain the Boolean operations on modeled objects to create new objects. (AU MAY/JUNE 2012 IT, NOV/DEC 2013, MAY/JUNE 2014 & NOV/DEC 2014) Constructive solid geometry (CSG) is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine objects. Often CSG presents a model or surface that appears visually complex, but is actually little more than cleverly combined or decombined objects. In 3D computer graphics and CAD CSG is often used in procedural modeling. CSG can also be performed on polygonal meshes, and may or may not be procedural and/or parametric. St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 55 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016

The CSG union of two objects is the combined parts of the boundary from each that is not in the interior of the other object. To find the closest intersection of a ray with the union of the two spheres, we need to find the closest intersection of either sphere such that it is not inside the other sphere. In the case above, that would be the first intersection with A. How can a ray tracer know this? One way is to shoot the ray at each of the sub-objects. Let the ray be defined parametricly as O~ + tD~ and let the nearest intersection with A be at t = tA where tA>minA and the normal at the hitpoint be N~A, and similarly for B. Initially, minA and minB are both 0. Note that the D~ · N~A < 0 at the nearest intersection with A. The surface normal points back along the direction of the ray. Since the object is closed and non-self intersecting, this means that O must have been outside A. (Likewise, O~ is also outside B.) Since the intersection with A is the closer of the two, that is the nearest intersection with the union. Now suppose that we instead shot the ray from inside the union, as shown in Figure 2: Here the situation is more complicated. The intersection with B is closer than that with A, but D~ · N~A > 0 is positive, meaning that the intersection with B is inside of A, so we must disallow it. In this case, we can set minB to tB and shoot the ray at B again, this time finding the intersection on the far side of B.

The closest intersection is now with the far side of A, but D~ · N~B > 0 so the intersection with A is on the interior of Band must again be disallowed. So as before, we can set minA to tA and shoot again to consider the next intersection with A– this time, no intersection with A will be found. At this point, there are no more intersections with A, but there is one with the far side of B. Since that intersection can‘tbe inside of A (if it were, we‘d still have an intersection with A to consider), the intersection with the far side of B must bethe intersection with the union and so we return it.Of course, if there was no intersection with either A or B, then there can‘t be an intersection with their union.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 56 ISO 9001:2008 www.vidyarthiplus.com www.vidyarthiplus.com CS2401-Computer Graphics Department of CSE & IT 2015-2016 Boolean operations union, difference and intersection create objects rather than shapes. When using Boolean operations, each object must have inside (i.e., interior) and outside (i.e., exterior). It is easy to understand the inside and outside of spheres, cones and tori; but, plans could be a problem. Recall that normal vectors of a surface always point outward. In defining a plane, its normal vector indicates the exterior. For example, the exterior of plane plane{ y, 0 } is the half-space above the xz-plane and its interior is the half-space below the xz-plane. We only use POV-Ray's union { }, intersection { } and difference { }. POV-Ray also supports another type union called merge { }, which could be very useful when constructing transparent objects. Older version of POV-Ray even supports composite { }. But, for our purpose, union { }, intersect { } and difference { }are sufficient.

St. Joseph’s College of Engineering/St. Joseph’s Institute of Technology 57 ISO 9001:2008 www.vidyarthiplus.com