Assignment 2 phase 1
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Assignment 2 Phase 1 PowerPoint PPT Presentation


  • 57 Views
  • Uploaded on
  • Presentation posted in: General

Assignment 2 Phase 1. Transformation Back-face culling View frustum culling. Outline. Implement the transformation. Modelview transformation Projection transformation Perspective division Viewport transformation Implement back-face culling. Bonus: Implement view frustum culling.

Download Presentation

Assignment 2 Phase 1

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Assignment 2 phase 1

Assignment 2 Phase 1

Transformation

Back-face culling

View frustum culling


Outline

Outline

  • Implement the transformation.

    • Modelview transformation

    • Projection transformation

    • Perspective division

    • Viewport transformation

  • Implement back-face culling.

  • Bonus: Implement view frustum culling.


Input and output

Input and Output

  • Input: *.view *.obj *.mtl

    • Same as assignment 1

  • Output: Wireframe of the obj with back-face culling


Transformation 1 3

Transformation 1/3

Modelview

Matrix

Projection

Matrix

Viewport

Transformation

Perspective

Division

Vertex

Vertex = Projection * Modelview * Vertex ;

Vertex.xyzw /= Vertex.w;

Vertex = Viewport * Vertex;


Model view

Model view

gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez,

GLdouble atx, GLdouble aty, GLdouble atz,

GLdouble upx, GLdouble upy, GLdoubpe upz );

N = (eye - at)/|eye - at|; V = up – (N•up)N; |up| = 1.0

U = V x N ;


Model view1

Model view

  • Modelview = BT


Projection

Projection

  • gluPerspective( GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far );


Projection1

Projection

  • n=near;

  • f=far;

  • t=n*tan( fovy *PI / 180.0 /2);

  • b= -t;

  • r= t* aspect;

  • l= -r;


Projection2

Projection

  • Projection = NSH =


Perspective division

Perspective Division

  • x /= w;

  • y /= w;

  • z /= w;

  • w /= w;


View port

View Port

  • Viewport = TS

  • From [-1 , 1 ] to [0 , width (or height) ]


Back face culling

Back-face culling

  • You can perform back-face culling in

    • World cord.

    • View cord.

      • ZN < 0

    • Window cord.

      • Clock wise

1

Back face

3

2


View frustum culling

View frustum culling

  • eliminate the polygon that complete outside the view frustum.

  • Bonus: view frustum clipping

    • Remove the part of polygon that outside the view frustum.


How to draw wireframe

How to draw wireframe?

  • Render the image using

    glBegin(GL_LINE_LOOP);

    glVertex2i(x,y);

    glEnd();


What to do in reshape function

What to do in reshape function?

void GL_reshape(GLsizei w, GLsizei h){

glViewport(viewport->x, viewport->y,

viewport->width, viewport->height);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(viewport->x, viewport->width,

viewport->y, viewport->height);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}


Ui requirement

UI requirement

  • Show an input command line.

    • “Please input the file name.”

    • If I type “box”, then read box.obj and box.view etc.


  • Login