rikimaru wrote:
Kuivamaa wrote:
rikimaru wrote:
kuiv δεν ξέρω πως ακριβώς λειτουργούν οι σύγχρονες μηχανές γραφικών αλλά αυτό που λες real time νομίζω είναι σχετικό, δηλαδή απλά υπάρχει κάποιο ρολόι σαν παράμετρος, δεν γίνονται δηλαδή ασύγχρονα οι υπολογισμοί και το "ζωγράφισμα".
</blockquote>
Frostbite το 2009.
http://www.slideshare.net/repii/parallel-graphics-in-frostbite-current-future-siggraph-2009-1860503
http://www.gamasutra.com/view/feature/130247/multithreaded_game_engine_.php?print=1
Στις υπερσύγχρονες μηχανές κάπως έτσι γίνεται το rendering, τα φορτία χωρίζονται σε δουλειές που ειναι decoupled η μια από την άλλη και υπάρχουν κάποιοι ελεγχοι σε περίπτωση που κάτι ξεφύγει από τα επιτρεπτά όρια γιατί εκει αναμεσα μπαινοβγαινουν τα υπολοιπα (ΑΙ,φυσική κλπ). Αυτό συμβαίνει στο main thread απ΄όσο ξερω αλλά εδώ μπαινουμε σε multithreaded χωράφια και δεν τα ξερω καθόλου <img src="/bigsmile.gif" width="" height="" alt="

" title="

" class="bbcode_smiley" />
A ναι η μπεθ έβαλε πεντε post process εφε φωτός και νομιζει ότι κατι εκανε...
http://www.frostbite.com/2014/11/moving-frostbite-to-pbr/
Καποιοι πανε με φρεσκοβαμμένα κάρα του '77 άλλοι τρέχουν με Πόρσε.</blockquote>
Καταρχήν με εντυπωσιάζει το πόσο όρεξη και διάθεση έχεις να το ψάξεις <img src="/cool.gif" width="" height="" alt="B)" title="B)" class="bbcode_smiley" />
Για αυτό που λες πάντως νομίζω έχει νόημα μόνο σε multithreading χωράφια γιατί για τέτοιες αρχιτεκτονικές από το link πληρώνεις ένα overhead το οποίο αν δεν έχεις παραλληλισμό μάλλον δεν αξίζει (ειδικά όταν το render γίνεται σύγχρονα).
Από εκεί και πέρα μιας και ανοίξαμε την κουβέντα, απλά να συμπληρώσω κάτι. Σε αυτό που ρωτήθηκε αρχικά δεν παίζουν ρόλο απαραίτητα οι decoupled δουλειές αλλά το αν το render γίνεται σύγχρονα ή ασύγχρονα. Σύγχρονα είναι αυτό που δείχνει το πρώτο σχήμα στο gamasutra. Η δουλειά σπάει στα 2 αλλά για να ολοκληρωθεί το render θα πρέπει να έχουν ολοκληρωθεί και και οι 2 επιμέρους δουλειές. Αυτό σε επίδοση ιδανικά μπορεί να δώσει μέχρι και χ2 αλλά μεταφέρει και τα προβλήματα που περιέγραψα στο προηγούμενο ποστ.
Ασύγχρονα είναι το δεύτερο σχήμα. Εκεί το render δεν περιμένει απολύτως τίποτα για να εκτελεστεί, απλά του έρχονται κλήσεις και εκτελείται.</blockquote>
Bασικά είναι η δουλειά μου, κάθε μέρα αντιμέτωπος με αυτά βρίσκομαι. Όχι με το τι είναι multithreaded αλλά με μπόλικο white box testing, κοίταγμα στον κώδικα, δοκιμές επι δοκιμών (πχ. τι να κάνουμε για να μην πηγαίνει το ρημάδι το iphone 4 με 100% CPU φορτίο σε OGL ES κλπ). Ναι, εννοείται πως το ΜΤ τρώει κύκλους και φέρνει οverhead αλλά έχουν γνώση οι φύλακες (το ξεμπουκωμα του main thread να γινει και βλέπουμε <img src="/bigsmile.gif" width="" height="" alt="

" title="

" class="bbcode_smiley" />) .
Για το δεύτερο διάγραμμα το πόσταρα το κείμενο (τον τυπά που το έγραψε τον είχα πετύχει σε ενα πάρτι εταιρειών games στο Ελσίνκι πριν καιρό). To κειμενάκι της frostbite το πόσταρα γιατί σύμφωνα με όσα μου έχει εξηγήσει ο τεχνικός διευθυντής μας και όσα μπορώ να καταλάβω (γιατί είπαμε, ΜΤ μονος δεν αγγίζω,δεν έχει και νόημα δλδ <img src="/tongue.gif" width="" height="" alt="

" title="

" class="bbcode_smiley" /> ) τόσο οι σύντροφοί οι Σουηδοί της DICE οσο και τα παιδιά της Crytek εχουν χωρίσει πλήρως rendering και λογική ,το ένα ειναι εντελώς ανεξάρτητο του άλλου και λογικά και τα physics γινονται με βάση τον δέλτα. Επίσης δεν έχω ιδέα για το πως ακριβώς δουλεύει το Physical Based Rendering που το υιοθέτησαν και οι δύο ταχύτατα (βρίσκεται και στο Battlefront που χρησιμοποιεί την Frostbite όσο και στο Star Citizen που είναι στην CryEngine) . Aν έχει σχέση αλληλεπίδρασης με τη βασική φυσική κλπ. Είπαμε, θεωρία <img src="/bigsmile.gif" width="" height="" alt="

" title="

" class="bbcode_smiley" />