Guía Docente 2023-24 PROGRAMACIÓN EN TIEMPO REAL |
BASIC DETAILS:
Subject: | PROGRAMACIÓN EN TIEMPO REAL | ||
Id.: | 31380 | ||
Programme: | GRADUADO EN DISEÑO Y DESARROLLO DE VIDEOJUEGOS. 2013 (BOE 28/03/2014) | ||
Module: | PROGRAMACIÓN DE VIDEOJUEGOS | ||
Subject type: | OBLIGATORIA | ||
Year: | 4 | Teaching period: | Primer Cuatrimestre |
Credits: | 3 | Total hours: | 75 |
Classroom activities: | 32 | Individual study: | 43 |
Main teaching language: | Inglés | Secondary teaching language: | Castellano |
Lecturer: | Email: |
PRESENTATION:
The subject is divided in two sections: CPU and GPU real time programming.
In the CPU section the student will learn different approaches, methodologies and design patterns to design and implement concurrent programs that make the most of modern hardware. Most modern CPUs consist of multi-core processors and support hardware multithread. The student will acquire the knowledge to design and implement algorithms that use these features and will be able to parallelize those that exist already.
In the GPU section the student will be introduced to real-time 3D rendering. First, the high level 3d graphics pipeline will be shown, including concepts such as a rasterizer and the z-buffer algorithm. Second, the students will learn 3d transformation math and their application to vertex shading, as well as lighting models and their application to pixel shading. Finally, more advanced techniques such as normal and shadow mapping, motion blur depth of field will be covered.
PROFESSIONAL COMPETENCES ACQUIRED IN THE SUBJECT:
General programme competences | G07 | Ability to handle different complex knowledge models through a process of abstraction and its application to approach and solve problems. |
Specific programme competences | E15 | Ability to apply the main foundations and techniques of programming in real time. |
Learning outcomes | R01 | Explain the basic concepts of computer systems in real time. |
R02 | Analyse the time constraints of a real-time system. | |
R03 | Select treatment devices of signals appropriate to the needs of a real-time system. | |
R04 | Explain the basic features of a real-time operating system that differentiate it from a traditional operating system. | |
R05 | Explain the key features of a programming language in real time that differentiate it from traditional programming language. |
PRE-REQUISITES:
Having completed successfully Computer Graphics and working knowledge of object oriented programming.
SUBJECT PROGRAMME:
Subject contents:
1 - Concurrent Programming |
1.1 - Introduction |
1.2 - Basic Implementation - Threads |
1.3 - Barrier Synchronization |
1.4 - Semaphores |
1.5 - Monitors |
1.6 - Particularities of the Multithread support in C# |
2 - Shader Programming |
2.1 - 3D Pipeline and Rasterization |
2.2 - Vertex Shading: 3D Transformations |
2.3 - Pixel Shading: Lighting I |
2.4 - Pixel Shading: Lighting II |
2.5 - Post Effects |
2.6 - Review Exercises |
Subject planning could be modified due unforeseen circumstances (group performance, availability of resources, changes to academic calendar etc.) and should not, therefore, be considered to be definitive.
TEACHING AND LEARNING METHODOLOGIES AND ACTIVITIES:
Teaching and learning methodologies and activities applied:
Student work load:
Teaching mode | Teaching methods | Estimated hours |
Classroom activities | ||
Master classes | 6 | |
Practical exercises | 6 | |
Practical work, exercises, problem-solving etc. | 6 | |
Laboratory practice | 8 | |
Assessment activities | 6 | |
Individual study | ||
Tutorials | 2 | |
Individual study | 15 | |
Individual coursework preparation | 16 | |
Research work | 10 | |
Total hours: | 75 |
ASSESSMENT SCHEME:
Calculation of final mark:
Written tests: | 25 | % |
Individual coursework: | 30 | % |
Group coursework: | 20 | % |
Final exam: | 25 | % |
TOTAL | 100 | % |
*Las observaciones específicas sobre el sistema de evaluación serán comunicadas por escrito a los alumnos al inicio de la materia.
BIBLIOGRAPHY AND DOCUMENTATION:
Basic bibliography:
DUFFY, Joe. Concurrent Programming on Windows: Architecture, Principles, and Patterns (Microsoft .Net Development). Addison Wesley, 2008 |
AKELINE-MOLLER, Tomas; HAINES, Eric; HOFFMAN, Naty. Real-Time Rendering. A. K. Peters, 2008. |
Recommended bibliography:
Recommended websites:
Effective Concurrency Column by Herb Sutter | https://herbsutter.com/2009/11/11/effective-concurrency-prefer-structured-lifetimes-%E2%80%93-local-nested-bounded-deterministic/ |
Threading in C#, by Joe Albahari | http://www.albahari.com/threading/ |
* Guía Docente sujeta a modificaciones