Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SER332 Lecture 01

SER332 Lecture 01

Introduction to Graphics and Game Development
Course Presentation
(201804)

Javier Gonzalez-Sanchez

January 09, 2018
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    SER332
    Introduction to Graphics and Game
    Development
    Lecture 01: Course Presentation
    Javier Gonzalez-Sanchez
    [email protected]
    PERALTA 230U
    Office Hours: By appointment

    View full-size slide

  2. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 1
    jgs
    SER332
    Introduction to Graphics
    Definitions
    Rendering
    Foundations of graphics
    Math concepts
    Programming

    View full-size slide

  3. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 2
    jgs
    Topics
    § Review of foundations
    § Algorithms and Linear Algebra
    § Graphics rendering
    § Transformations
    § Meshes
    § Camera
    § Lightening
    § Materials
    § Animation

    View full-size slide

  4. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 3
    jgs
    Required Skills and Goal
    § Programming Skills
    C++
    OpenGL
    Note: programming requires (much) practice
    Data Structures: Linked-List (Vector), Stack, Trees*
    § Goal
    You have to be able to understand the theory (midterm, final) and
    implement the theory in practice (projects).

    View full-size slide

  5. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 4
    jgs
    Grading
    Exams (2) 50%
    25% + 25%
    40%
    10% + 10% + 10% + 10%
    Projects
    10%
    10%
    Quizzes +
    Attendance
    100%
    A+
    97
    A
    93
    A-
    89
    B+
    85
    B
    81
    B-
    77
    C+
    73
    C
    69
    D
    65

    View full-size slide

  6. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 5
    jgs
    Textbook
    § Tomas Akenine-Moller and Eric Haines. Real-Time
    Rendering (3rd Edition). AK Peters, Ltd.
    § D. Hearn and M. P. Baker. Computer Graphics with
    OpenGL (3rd Edition). Prentice Hall.
    § J. Neider, T. Davis, M. Woo, The OpenGL Programming
    Guide, Addison-Wesley

    View full-size slide

  7. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 6
    jgs
    Blackboard
    § syllabus
    § slides
    § projects
    § announcements

    View full-size slide

  8. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 7
    jgs
    Slides
    § The slides will be available on blackboard and are intended for your
    personal studies
    § You are not allowed to distribute the slides
    § You are still required to read the book for a better and more complete
    understanding of the topics in this class

    View full-size slide

  9. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 8
    jgs
    Projects
    § Four projects are the core of the course
    § It is important that you are able to implement computer graphics algorithms
    § The projects will have a clear specification
    § Approximately, 10 hours of work outside of class per week. If you miss the
    class you will need more time.

    View full-size slide

  10. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 9
    jgs
    Exams
    § 1 midterm during the semester (before Spring break)
    § 1 final exam (comprehensive)

    View full-size slide

  11. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 10
    jgs
    Ethics
    § Violations of academic integrity include (but are not limited to) cheating,
    fabrication, tampering, plagiarism or facilitating such activities.
    § it is unethical to bring to your instructor's attention the possible impact of
    your course grade on your future plans, including graduation, scholarships,
    jobs, etc.

    View full-size slide

  12. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 11
    jgs
    Attendance
    § Attendance is required
    § Announcements are made in class
    § I will try to post all important information on Blackboard
    § If you come to class you are expected to participate

    View full-size slide

  13. jgs
    Test Yourself
    The following slides should give you some idea about topics, difficulty
    and requirements are to be successful

    View full-size slide

  14. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 13
    jgs
    Design an Algorithm
    § You have a screen, size 100 x 100.
    lower left corner (0,0)
    upper right is (100, 100).
    § The function PutPixel(x, y) will draw a pixel on location (x,y).
    § Give a pseudo-code algorithm to draw a circle with center (50,50) and
    radius 10.

    View full-size slide

  15. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 14
    jgs
    Proposed Algorithm
    clearScreen();
    i = 0;
    while (i < 360)
    PutPixel( 50 + 10*sin(i), 50 + 10*cos(i) )
    i = i + 1
    § Is this a good algorithm?
    § What are some of the problems?
    § How could the algorithm be improved

    View full-size slide

  16. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 15
    jgs
    Matrix Multiplication
    § Calculate this,
    2 0 0
    0 3 0
    1 0 1

    1
    2
    3
    =

    View full-size slide

  17. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 16
    jgs
    Matrix Multiplication
    § Calculate this,
    2 0 0
    0 3 0
    1 0 1

    1
    2
    3
    =
    2
    6
    4

    View full-size slide

  18. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 17
    jgs
    Geometry
    § Given a line 7x + 3y = 0
    § How can you test if a point is on the left or right side of the line?
    § Can you draw the line on a piece of paper?

    View full-size slide

  19. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 18
    jgs
    Programming
    void init (void) {
    //set display-window color to white.
    glClearColor(1.0, 1.0, 1.0, 0.0);
    // Set projection parameters.
    glMatrixMode (GL_PROJECTION);
    gluOrtho2D (0.0, 200.0, 0.0, 150.0);
    }
    void lineSegment (void) {
    // Clear display window.
    glClear (GL_COLOR_BUFFER_BIT);
    // Set line segment color to red.
    glColor3f (0.0, 0.0, 1.0);
    glBegin (GL_LINES);
    // Specify line-segment geometry.
    glVertex2i (180, 15);
    glVertex2i (10, 145);
    glEnd ( );
    // Process all OpenGL routines as quickly as possible.
    glFlush ( );
    }

    View full-size slide

  20. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 19
    jgs
    Programming
    § How to create a project in Visual Studio
    § How to copy a project from one computer to other
    § Debugging
    § What about Object-Oriented Programming? Yes, classes, objects,
    inheritance, and so on...

    View full-size slide

  21. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 20
    jgs
    Homework
    Read the Syllabus
    Microsoft Visual Studio Up and Running

    View full-size slide

  22. jgs
    SER332 Introduction to Graphics
    Javier Gonzalez-Sanchez
    [email protected]
    Spring 2018
    Disclaimer. These slides can only be used as study material for the class SER332 at ASU. They cannot be distributed or used for another purpose.

    View full-size slide