Starting from:

$25

CSE4020 - Computer Graphics - Lab Assignment 6  - Solved

1. Write your own myLookAt() and myFrustum() functions (of the following form) that behaves exactly same as gluLookAt() and glFrustum(). 

def myLookAt(eye, at, up): # eye, at, up are 1D numpy array of length 3 

A.         def myFrustum(left, right, bottom, top, near, far):    

B.         Set the window title to your student ID and the window size to (480,480). 

C.         Code skeleton 

 def render():     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)     glEnable(GL_DEPTH_TEST) 

    glPolygonMode( GL_FRONT_AND_BACK, GL_LINE )     glLoadIdentity() 

 

    myFrustum(-1,1, -1,1, 1,10) 

    myLookAt(np.array([5,3,5]), np.array([1,1,-1]), np.array([0,1,0])) 

 

# Above two lines must behave exactly same as the below two lines  

    #glFrustum(-1,1, -1,1, 1,10) 

    #gluLookAt(5,3,5, 1,1,-1, 0,1,0) 

 

    drawFrame() 

 

    glColor3ub(255, 255, 255)     drawCubeArray() 

 def myFrustum(left, right, bottom, top, near, far): 

    # implement here 

 def myLookAt(eye, at, up):     # implement here 

 

D.     Find code for drawFrame(), drawCubeArray() from 6-Viewing & Projection2 & mesh slides. 

E.      DO NOT use gluLookAt() inside myLookAt() and glFrustum() inside myFrustum()! 

F.      Your program should render the following scene: 

                i.         

G.     Hint: 

1.      To implement myLookAt(), see lecture slide 5-reference-viewing. To implement myFrustum(), see lab slide 6-Viewing & Projection2, mesh . 

2.      l2 norm of v : ||v|| = np.sqrt( np.dot(v, v) ) 

3.      a x b (cross product) : np.cross(a, b) 

4.      a ȡ b (inner product) : np.dot(a, b) or a@b 

5.      Use glMultMatrixf() to multiply your projection matrix and viewing matrix to the current transformation matrix. 

2. Write down a Python program to draw following cube (࡫ࢽִ঑) by using indexed squares representation and glDrawElements(). 

 A.    

B.     Length of each line is 1.5 

C.     Start from the code in 6-Viewing & Projection2 & mesh slides. Make sure camera 

PDQLSXODWLRQVKRUWFXWVěĜěĜěĜěZĜZRUN'RQĜWQHHGWRFDUHDERXWLQLWLDOYLHZDQJOH D. Set the window title to your student ID and the window size to (480,480).  

More products