Course : Γραφικά Υπολογιστών (Computer Graphics)

Course code : INF143

INF3781  -  Ανδρέας Α. Βασιλάκης (Andreas Vasilakis)

Course Description

Course

­­­­

Σκοπός του Μαθήματος

Αυτό το εισαγωγικού επιπέδου μάθημα στα γραφικά υπολογιστών, επικεντρώνεται στην κατανόηση της γεωμετρίας των δύο και τριών διαστάσεων και στους βασικούς αλγόριθμους σχεδίασης χρωματισμού και φωτισμού δύο και τριών διαστάσεων με απευθείας απεικόνιση. Οι φοιτητές έχουν την ευκαιρία να γνωρίσουν τους αλγόριθμους που χρησιμοποιούνται σήμερα για τη σχεδίαση γραφικών πραγματικού χρόνου και φωτορεαλιστικών γραφικών, να μάθουν για το σχετικό hardware γραφικών και να εξασκηθούν παράλληλα σε αντίστοιχες φροντιστηριακές διαλέξεις στη μηχανή γραφικών Unity και σε εργαστηριακό μάθημα προγραμματισμού τρισδιάστατων γραφικών σε Three.js.

 

Περιεχόμενο του μαθήματος

  • Εισαγωγή: Η ψηφιακή εικόνα, εφαρμογές των γραφικών , είδη και μορφές αναπαράστασης γραφικών. Συσκευές απεικόνισης και καταγραφής γραφικών.
  • Αλγόριθμοι Σχεδίασης Βασικών Σχημάτων: Γραμμές, πολύγωνα, γέμισμα περιοχών, πράξεις με εικόνες και buffers, antialiasing / supersampling.
  • Σχεδίαση στο Επίπεδο: Συστήματα Συντεταγμένων, εισαγωγή στους μετασχηματισμούς, μετασχηματισμοί στο επίπεδο, αντιστροφή μετασχηματισμών και μετασχηματισμοί συστημάτων συντεταγμένων. Αποκοπή.
  • Σχεδίαση στο Χώρο: Συστήματα συντεταγμένων στο χώρο, μετασχηματισμοί στις 3 διαστάσεις, ιεραρχίες μετασχηματισμών και κινηματικές αλυσίδες. Σύνθεση αντικειμένων.
  • Βασική Απεικόνιση - Προβολές: Ο εικονικός παρατηρητής, συστήματα συντεταγμένων παρατηρητή. Η διαδικασία απεικόνισης. Προβολές.
  • Βασική απεικόνιση - Σχεδίαση Πολυγώνων: Δομές και χαρακτηριστικά πολυγωνικών αντικειμένων. Απομάκρυνση πίσω επιφανειών. Απόκρυψη/ταξινόμηση επιφανειών, scan-conversion. Ο αλγόριθμος Ζ-Buffer. Υλοποιήσεις σε hardware.
  • Φωτισμός: Μοντέλα φωτισμού - γενικά, συνάρτηση κατανομής αμφίδρομης ανακλαστικότητας. Η φυσική του φωτισμού. Εμπειρικά μοντέλα τοπικού φωτισμού και το μοντέλο Phong. Αλγόριθμοι φωτισμού (ενοποίηση με το scan-conversion, επίπεδη σκίαση, οι αλγόριθμοι Gouraud και Phong).
  • Απεικόνιση Υφής: Χρήση - εφαρμογές και είδη απεικόνισης υφής. Απεικόνιση εικόνων (texture maps). Συντεταγμένες υφής, προβολές υφής, aliasing/antialiasing, mip-mapping. Μετασχηματισμοί στο χώρο της υφής. Παραμετρική υφή.
  • Βασική Κίνηση: Ορισμοί, συμβάσεις, πρότυπα. Μοντέλα κίνησης (Key-framing, συναρτησιακή κίνηση, καταστατικά μοντέλα και προσομοίωση, συμπεριφορές). Συναρτήσεις παρεμβολής κίνησης. Σύνθεση κινήσεων - ιεραρχίες κινήσεων.
  • Δημιουργία Σκιών: Γενικά περί σκιών, o αλγόριθμος shadow volumes και η υλοποίησή του ως stencil shadow volumes.
  • Παρακολούθηση ακτίνων (ray-tracing). Ο βασικός αλγόριθμος παρακολούθησης ακτίνων, έλεγχοι τομής ακτίνων με γεωμετρικά στοιχεία, βασικές δομές.

Διαλέξεις για τη μηχανή Unity: Μέρος των διαλέξεων είναι αφιερωμένο στην εκμάθηση της μηχανής παιχνιδιών Unity με βάση την οποία θα δουν οι φοιτητές την εφαρμογή ορισμένων από τα αντικείμενα των θεωρητικών διαλέξεων.

Εργαστήρια: Παράλληλα με τις παραδόσεις του θεωρητικού μέρους του μαθήματος, διεξάγεται εργαστηριακό μάθημα προγραμματισμού τρισδιάστατων γραφικών σε Three.js (και JS) κατά τέτοιο τρόπο ώστε: να συνδυάζεται χρονικά και εννοιολογικά με την ύλη που διδάσκεται στο θεωρητικό μέρος του μαθήματος. Η παρακολούθηση του εργαστηρίου είναι προαιρετική. Το εργαστήριο απαιτεί 7 2ωρα ανά τάξη φοιτητών. Οι φοιτητές οργανώνονται σε ομάδες των 2-3 ατόμων ανά σταθμό εργασίας. Η συγκεκριμένη πλατφόρμα βοηθάει τους φοιτητές να εξοικειωθούν γρήγορα με βασικές λειτουργίες γραφικών περιβαλλόντων και να βρουν στο διαδίκτυο πολλές πηγές κώδικα, παραδειγμάτων και εφαρμογών σε τρισδιάστατα γραφικά. 

 

Προαπαιτούμενες γνώσεις

  • Γραμμική Άλγεβρα
  • Γνώσεις προγραμματισμού (κατά προτίμηση σε C/C++, αλλά όχι απαραίτητα)

 

­­

  • Instructors

    Professor: Andreas Vasilakis (Lectures) - abasilak@aueb.gr

    Teaching Assistant: Vasileios-Ektor Kotsis-Panakakis (Lab Courses) - vas.kotsispanakakis@aueb.gr

    Office hours: Monday 10:00-12:00, Friday 10:00-12:00 (Troias 2, 4 floor., 405)

    Website: graphics.cs.aueb.gr/users/abasilak/

     

    Course Description

    Computer graphics (CG) is an exhiting field of computer science, bringing together elements from mathematics and geometry, software and hardware engineering, algorithms and art, with the goal to provide the means for the synthesis of computer generated imagery. CG cover a wide range of applications, from functional parts of comodity systems like typical user interfaces to specialized photorealistic image generation software for feature films and scientific visualization applications.

     

    The course focuses on the image generation via the rasterization graphics pipeline, i.e. the rendering architecture commonly implemented via the graphics hardware, with an emphasis on 3D graphics. The topics covered include elements of algebra and analytic geometry, object and scene definition principles, geometric transformations and projections, basic radiometric quantities and equations, rasterization and hidden surface elimination, materials and shading, light sources and shadow generation, texturing and appearance editing, hardware architectures and the programmable GPU stages, shaders, basic animation and introduction to ray tracing.  Part of the lectures is dedicated to learning the Unity game engine, through which students will see the practical application of some of the concepts covered in the theoretical lectures.

     

    The lectures are complemented by a lab course in Three.js with examples and projects in JS. The course also includes a final project, which is usually a small 3D game or interactive application. 

    Course Objectives

    Upon completion of the course, students will be able to:

    • Have a grasp of elementary computer graphics and 2D/3D geometry representation foundations.
    • Describe and analyze the principal phenomena governing light transport on surfaces and within media.
    • Apply elements of real-time computer graphics theory to modern applications.
    • Implement interactive applications, such as computer games, using Three.js.
    • Implement models and algorithms for shading, animation and display of surfaces using shaders.
    • Evaluate the suitability of a given computer graphics algorithm or model to solve a particular problem.

    Suggested Reading

    Instructional Methods

    The course includes:

    • Two two-hour lectures per week: Tuesday 15:00–17:00, room A44, and Thursday 13:00–15:00, room A47.
    • One two-hour tutorial session per week: TBD, room TBD. The tutorials focus on providing relevant programming knowledge and skills.
    • One optional programming assignment.

    Prerequisites/Prior Knowledge

    To enroll in the course, students must have successfully completed, in a previous semester, at least one of the following courses: “Mathematics I”, “Computer Programming in C++”, or “Computer Programming in Java”. However, it is recommended that students have successfully completed at least one programming course (Computer Programming in C++, preferably), as well as the course “Computer System Organization” in a previous semester.

     

    As the course assignment will be implemented in JavaScript, it is also recommended that students have successfully completed the course “Technologies and Programming of Web Applications” or have equivalent knowledge of JavaScript and web application development.

    Evaluation Methodology

    At the end of the semester there is a written examination test, which accounts for the 8/10 of the total course grade (for Erasmus students this is 10/10), with an optional final project in Three.js scoring additional 3 points (the project counts in the overal grade only if the written examination grade is >3.5/10).

    Additional info

    Please note that this course was originally prepared and structured by Prof. Papaioannou. However, due to his academic leave, Prof. Vasilakis will be delivering the entire course this semester.

Agenda

Due day
Course event
System event
Personal event

Announcements

All announcements...