• Μετα-επεξεργασία (post-processing effects: bloom, HDR, motion blur).
Οι σύγχρονες μηχανές υποστηρίζουν data-oriented σχεδίαση, όπου τα δεδομένα (meshes,
textures) οργανώνονται με τρόπο βελτιστοποιημένο για την GPU, ώστε να επιτυγχάνεται μέγι-
στη απόδοση ([14]).
Στόχοι του Rendering Engine
• Αφαιρετικό API: να επιτρέπει στον προγραμματιστή να δουλεύει σε ανώτερο επίπεδο
(mesh.draw()) χωρίς να γράφει χαμηλού επιπέδου κλήσεις. Να είναι ανεξάρτητος από
την υλοποίηση στην βάση (OpenGl, DirectX, Vulcan, ...).
• Απόδοση (Performance): υποστήριξη batching, frustum culling, level-of-detail (LOD).
• Ευελιξία (Flexibility): modular σύστημα shaders, πολλαπλά rendering passes.
• Υποστήριξη 2D και 3D: sprites και tilemaps για 2D, meshes, skeletal animation και φω-
τισμό για 3D.
Βασικές Δομές
• Στην πράξη, το rendering system βασίζεται σε πυρηνικές κλάσεις/δομές, όπως:
• Mesh / Model : περιέχει vertices, indices, normals, UVs.
• Material / Shader : ορίζει πώς θα αποδοθεί ένα αντικείμενο (χρώμα, υφή, εφέ).
• Camera : καθορίζει view/projection matrices.
• Renderer : συντονίζει την απόδοση της σκηνής.
Ο ([8]) έδειξε ότι το rendering είναι ένα από τα πιο πυκνά και «κεντρικά» modules,
αφού εξαρτάται από το math library (μετασχηματισμοί), το resource management (φόρτωση
textures/shaders), και το platform layer (δημιουργία παραθύρου, context).
Στις εμπορικές μηχανές:
Η Unity χρησιμοποιεί Scriptable Render Pipeline (SRP) για modular rendering.
Η Unreal Engine προσφέρει deferred + forward rendering, με προηγμένα εφέ φωτισμού.
Η Godot παρέχει rendering abstraction ώστε να υποστηρίζει πολλαπλά backends (OpenGL,
Vulkan).
2.2.5
Διαχείριση εισόδου (Input Handling)
Η διαχείριση εισόδου είναι το υποσύστημα της μηχανής που είναι υπεύθυνο για τη συλλογή
και ερμηνεία σημάτων από τον παίκτη μέσω πληκτρολογίου, ποντικιού, gamepad, ή άλλων
συσκευών. Χωρίς αυτήν, δεν υπάρχει αλληλεπίδραση με τον κόσμο του παιχνιδιού. Η διαχείριση
12