godlike Δημοσ. 15 Μαρτίου 2005 Δημοσ. 15 Μαρτίου 2005 [MEGA ARTICLE] Ο πρώτος επιταχυντής φυσικής Πρόλογος Για να σας μπάσω στο ψητό πρώτα θα σας πω ένα ρητό της πληροφορικής και μετά θα διηγηθώ μια ιστορία σχετικά πρόσφατη, στην συνέχεια και αφού σας έχω (ελπίζω) κεντρίσει το ενδιαφέρων θα μπω και στο ψητό. Ένα ρητό των υπολογιστών Αν θέλουμε να κάνουμε σε έναν υπολογιστή, μια λειτουργία να τρέχει πολύ πιο γρήγορα τότε την μεταφέρουμε από το software στο hardware. Τι σημαίνει αυτό;; Όταν έχουμε μια λειτουργία που τρέχει στον –κατά τα άλλα general purpose- επεξεργαστή του συστήματος, για να την επιταχύνουμε φτιάχνουμε ένα ξεχωριστό chip που να την τρέχει . Παράδειγμα χρησιμοποίησης αυτού του ρητού αναφέρεται παρακάτω. Λίγη ιστορία Πριν από πολύ καιρό, το 1991 για την ακρίβεια, κυκλοφόρησε το πρώτο πλήρως τρισδιάστατο παιχνίδι, το Wolfenstein 3D για τα PC από την ID software. Το παιχνίδι είχε πολύ απλά αλλά δεν έπαυαν να είναι τρισδιάστατα γραφικά. Μερικά χρόνια μετά (1993) κυκλοφόρησε το παιχνίδι σταθμός στο PC gaming, το Doom. Το Doom είχε πολύ βελτιωμένα γραφικά από τον προκάτοχο του. Καθώς τα παιχνίδια 3D πλήθαιναν τότε γεννήθηκε η ανάγκη για καλύτερα και ομορφότερα γραφικά. Για να επιτύχουν τα καλύτερα και ομορφότερα γραφικά έπρεπε να χρησιμοποιήσουν περισσότερη επεξεργαστική ισχύ που σήμαινε ότι έπρεπε ή να περιμένουν για γρηγορότερα chip, ή με βάση το ρητό που αναφέραμε θα φτιαχνότανε ξεχωριστό chip για τα γραφικά. Έτσι γεννήθηκε από την 3Dfx ο πρώτος επιταχυντής γραφικών … η Voodoo 1 το 1994. Το πρώτο παιχνίδι που την χρησιμοποίησε ήταν το Quake πάλι από την ID software τo 1996. H Voodoo αναλάμβανε να κάνει κάποιες εξειδικευμένες λειτουργίες που οι τότε επεξεργαστές αργούσαν να τις διεκπεραιώσουν. Το αποτέλεσμα ήταν εντυπωσιακό. Για τις λειτουργίες αυτές ίσως γραφτεί ένα άρθρο στο μέλλον. Υ.Γ.: Να πω εδώ ότι η ιστορία που προανέφερα δεν είναι το πρώτο γεγονός που αντιπροσωπεύει το ρητό αλλά είναι σχετικά πρόσφατο και ίσως το πιο αντιπροσωπευτικό παράδειγμα επαλήθευσης του ρητού … στα PC. Wolfenstein 3D Doom Στο ψητό Μετά τον μεγάλο πρόλογο ας παρουσιάσουμε την πρώτη Physics Processing Unit ή σύντομα PPU. Τι ισχύει σήμερα. Πριν από 5 χρόνια άρχισε να χρησιμοποιείται φυσική και στα παιχνίδια. Πρώτα ήταν το collision detection, μετά απλή gravity, μετά αντικείμενα που πέφτουν ρεαλιστικά και αλληλεπιδρούν με το περιβάλλον. Ακόμα, στα σημερινά παιχνίδια μπορούμε να δούμε και σώματα που θυμίζουν κατά το δυνατό τα ανθρώπινα κατά την αλληλεπίδρασή τους με άλλα αντικείμενα, οι λεγόμενες ragdolls. Η φυσική αυτήν την στιγμή δεν κάνει τίποτα παραπάνω από αυτά που προανέφερα. Το αντιπροσωπευτικότερο παράδειγμα σημερινής τεχνολογίας είναι το παιχνίδι Half-Life 2, προσωπικά το αγαπημένο μου. Σήμερα υπάρχουν μερικοί κατασκευαστές SDKs (Software Development Kits) φυσικής δηλ. εργαλεία για την εισαγωγή φυσικής σε εφαρμογές. Αυτά τα εργαλεία απευθύνονται στους κατασκευαστές παιχνιδιών και σε CAD εφαρμογές. Οι γνωστές (σε μένα) είναι η Havok και η Meqon. Μάλιστα στο site της Meqon μπορείτε να βρείτε ωραία demos με εξομοιώσεις φυσικής. Link: http://www.meqon.com/downloadarea/downloadarea.php Ανάγκη για επιτάχυνση, τι άλλο μπορούμε να επιταχύνουμε;; Ο τίτλος μεταφράζεται σε “τι μπορούμε να βάλουμε σε ξεχωριστό chip;” Όσοι έχουν χρησιμοποιήσει προγράμματα σχεδίασης 3D γραφικών (Maya, 3Ds max, Blender κ.τ.λ.) και συγκεκριμένα κάποια plug-in τους ή έχουν δει ταινίες με ειδικά effects θα έχουν παρατηρήσει κάποια πράγματα. Το animation των ρούχων, το animation των υγρών και ίσως το real time (δεν ξέρω τον ακριβή όρο) “σπάσιμο”. Αυτά τα effects γίνονται από την CPU και δεν απαιτούν animation, απλά λες στο 3Ds MAX -για παράδειγμα- ότι αυτό είναι ρούχο και το αφήνεις να κάνει αυτό τους υπολογισμούς. Αυτά τα effects είναι πολύ ωραία και θα θέλαμε να τα έχουμε σε μελλοντικά παιχνίδια. Το πρόβλημα είναι ότι θα “γονάτιζαν” τον κεντρικό επεξεργαστή.Γιατί;; Δυστυχώς όταν έχουμε πολλά αντικείμενα σε μία σκηνή και για αυτά τα αντικείμενα πρέπει να προσομοιώσω (ούτε καν εξομοιώσω) την φυσική τους η πολυπλοκότητα του προβλήματος δεν είναι ανάλογη του αριθμού των αντικειμένων. Δηλ. άμα διπλασιάζω τα αντικείμενα που αλληλεπιδρούν δεν θέλω την διπλάσια επεξεργαστική ισχύς αλλά τριπλάσια. Έτσι γεννιέται ένα νέο προϊόν … Ο πρώτος Physics accelerator. Η ιστορία επαναλαμβάνεται Ή όπως θέλει να τον ονομάζει η εταιρεία κατασκευής του PPU δανειζόμενη τον όρο από τις κάρτες γραφικών που ονομάζονται GPUs (graphics processing units κατά nVidia) ή VPUs (visual processing units κατά ΑΤΙ). Ο σχεδιαστής του chip είναι η AGEIA και το chip ονομάζεται PhysX. Το chip θα έχει πολλές δυνατότητες ανάμεσα τους αυτές που προανέφερα. Μια ακόμα δυνατότητα θα είναι το hardware collision (περισσότερα δεν μπορώ να πω γιατί θα πελαγοδρομήσω, όχι ότι δεν το έχω κάνει ήδη). Θα είναι για PC και θα μπαίνει σε θύρα PCI-Express αλλά και στις παλιές PCI. Ακόμα κάποια next-genn κονσόλα θα περιλάβει στο hardware της την PPU, όνομα δεν ξέρουμε ακόμα. Η μεγάλη και τρανή Epic θα υποστηρίξει το προϊόν και θα συμπεριλάβει υποστήριξη της PPU στην αναμενόμενη Unreal Engine 3 ή σε κάποια μελλοντική έκδοση της engine. Να προσθέσω ότι το chip θα έχει μνήμη GDDR3 όπως ακριβώς και οι κάρτες γραφικών. Κλείνοντας Το μέλλον θα δείξει αν θα γίνει standard η PPU. Για να διασφαλιστεί η επιτυχία πρέπει (1) να υποστηριχθεί (κάτι που έχει ήδη αρχίσει) από τους game developers, (2)να την αποδεχτεί ο κόσμος και (3)να βρει μιμητές κάτι που θα βοηθήσει στον ανταγωνισμό. Για μια ακόμη φορά τα games οδηγούν την τεχνολογία σε άλλα επίπεδα. Για να δούμε. Περισσότερα (φυσικά) στο http://www.anandtech.com στο link: http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2376 Ελπίζω να ήταν ενδιαφέρων το άρθρο και ελπίζω ό κόπος μου να βρήκε τόπο. Παρακαλώ ποστάρετε τις παρατηρήσεις σας. Υ.Γ.: Στο άρθρο το έφτιαξα για τις ανάγκες ενός άλλου forum και σκέφτηκα να το ποστάρω και στο insomnia. Author GODlike
MixalisX Δημοσ. 15 Μαρτίου 2005 Δημοσ. 15 Μαρτίου 2005 Na rotiso kana duo pramatakia? To chip tha epexergazetai mono ta physik's h kai ta textures? Apo oti xero ta textures einai auta pou kanoun tin zimia sta games kai pleon o realismos ton grafikon basizetai se auta se epipedo 80-90%. Episis ti ginetai me to antialising? Auto basizetai apo ta liga pou xero mono ston cpu. Kai telos giati den tha ensomatonetai auto to pragma apeuthias stis kainouries kartes grafikon alla mono san epipleon karta? Euxaristo gia tin analytiki sou enimerosi file kai sorry an apo tis erotiseis mou kati einai isos asxeto me to thema...
panosp1 Δημοσ. 15 Μαρτίου 2005 Δημοσ. 15 Μαρτίου 2005 kala, an ayto to ipostirijoun/proo8isoun tote milame gia alla kolpa! @MixalisX o realismos den einai mono sta textures kirios einai sto fotismo kai stis skies.... kai min mperdeveis Physics me Graphics.... oti exei sxesi me graphics ta kanonizei i GPU... (8eoritika panda)
ifrit Δημοσ. 15 Μαρτίου 2005 Δημοσ. 15 Μαρτίου 2005 pisteyw se ena sygxrono game den metroun mono ta textures -exoume dei para poly omorfa textures mexri stigmhs- alla h fysikh. Aytos einai o apolytos realismos, makari na proxwrhsei h istoria me tous epitaxyntes
MixalisX Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 milao gia ta textures giati eixa dei prosfata mia ekpomi gia auto to thema kai enas eidikos ipostirize pos protimaei na exei mia epifaneia 100 layers apo textures para na exei epipleon polygons. Pantos pisteuo pos to thema ton physiks einai diskolo na lithei me mia karta. Kathe paixnidi exei analoga me tis anages kai dika tou physiks. Pantos den antilego pos an upirxe ena eniaio sistima physiks gia ta games tha ofelouse prota apo olous tous developers oi opoioi spatalame panta polutimo xrono gia tin anaptixi tous. Eimaste omos arketa makria apo kati tetoio...
ok_computer Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 ο ειδικος ειναι ο προεδρος της id.... Μιλουσε για αν χρειαζεται να εχουν περισσοτερα bit χρωματος τα textures....
MixalisX Δημοσ. 16 Μαρτίου 2005 Δημοσ. 16 Μαρτίου 2005 oxi kaneis lathos file gia allon milao, kai anefere afta pou egrapsa parapano
godlike Δημοσ. 16 Μαρτίου 2005 Μέλος Δημοσ. 16 Μαρτίου 2005 Na rotiso kana duo pramatakia? To chip tha epexergazetai mono ta physik's h kai ta textures? Apo oti xero ta textures einai auta pou kanoun tin zimia sta games kai pleon o realismos ton grafikon basizetai se auta se epipedo 80-90%. Episis ti ginetai me to antialising? Auto basizetai apo ta liga pou xero mono ston cpu. Kai telos giati den tha ensomatonetai auto to pragma apeuthias stis kainouries kartes grafikon alla mono san epipleon karta? Euxaristo gia tin analytiki sou enimerosi file kai sorry an apo tis erotiseis mou kati einai isos asxeto me to thema... 1) I PPU den exei na kanei tipota me ta grafika kai ara den mporoume na milame gia textures 2)Den tha to valoune stis kartes grafikon gia logo kostous kai epidi tha einai akoma noris gia tin epitixia tou proiontos.
godlike Δημοσ. 16 Μαρτίου 2005 Μέλος Δημοσ. 16 Μαρτίου 2005 Και μιας και αναφέρατε τον John Carmak έτσι για να πουλήσω λίγο μούρη θα σας πω μερικά πράγματα από συνεντεύξεις του. Ο John Carmak είχε πει ότι τα μοντέλα στο DOOM III είναι τόσο low-poly (μιλάμε για max 1000 polys εκεί που το Unreal 2 είχε 4500 σε κάποια μοντέλα) για να μην είναι βαρύ το παιχνίδι. Αυτό συμβαίνει γιατί όσο περισσότερα πολύγωνα τόσο μεγαλύτερη ισχύς χρειάζεται για τις real-time σκιές. Και εδώ έρχεται αυτό που είχε ακούσει ο Μιχάλης. Να θυμίσω ότι στο Doom III οι σκιές γίνονται από την CPU!!! Ακόμα στον τομέα που είχε κατηγορηθεί ο John Carmak -και είχαν κάποιοι πει ότι το παρατραβάει- είναι στα textures per poly. Είχε πει ότι το Doom θα έχει 8(!!!) περάσματα ανά επιφάνεια όταν η καλύτερη κάρτα μπορούσε να επεξεργαστεί 4. Η δήλωση αυτή είχε γίνει πολύ πιο πριν την επίσημη κυκλοφορία του παιχνιδιού και γι’ αυτό ξένισε σε κάποιους. Να πω ότι οι υφές είναι main texture, defuse shading, bump mapping, Specular shading και κάνα ακόμα αν πέσει ο π.χ. φακός επάνω. Τα υπόλοιπα δεν τα ξέρω. Ακόμα είχε πει ότι δεν τον ενδιέφερε η φυσική για την Doom III engine αλλά ήθελε από την αρχή να φτιάξει έναν γρήγορο render. Εδώ που τα λέμε η φυσική του Doom είναι τελείως σ***ά, δοκίμασα μερικές φορές να φτιάξω στοίβα από πτώματα και έπιανε χάλια καρέ όταν όμως σταμάταγε να επεξεργάζεται την φυσική το παιχνίδι ερχότανε στα κανονικά καρέ του. Είχα ακούσει μια φορά ότι είχε πει για 64bit βάθος χρωμάτων αλλά δεν θυμάμαι τι. Αυτά από μένα.
hadderakk Δημοσ. 14 Απριλίου 2005 Δημοσ. 14 Απριλίου 2005 γεια χαρα σε ολους ωραιο θεμα... λοιπον, το PhysX ειναι middleware SDK, ητοι 1) εαν το προγραμματιστικό του μερος (API) χρησιμοποιηθει στον κωδικα μιας εφαρμογής ΚΑΙ 2) υπαρχει και το εν λογω hardcoded add-on (σε υλοποιησεις PCI ή PCI-X, οπως αναφερει και το Inquirer), τοτε οτι ειναι γραμμενο με το API αυτο, θα εκτελειται απο το add-on, ειδαλλως θα πηγαινει στην GPU η/και στην CPU. Αυτα για την αρχιτεκτονικη. Το θεμα ειναι το εξης: εαν θα ειναι οικονομικα προσιτο για ολες τις Game Developing εταιριες και ευκολο να ενσωματωθει σε υπαρχον κωδικα. Κοινως, αν "πιασει" το SDK θα δουμε και το hardware, μπορει και fusion GPU+PPU... Αν οχι, ακομα ενας που θα "φαει" χωμα... περισσοτερα ici (http://www.ageia.com/pdf/wp_2005_3_physics_gameplay.pdf) !
Ailuros Δημοσ. 14 Απριλίου 2005 Δημοσ. 14 Απριλίου 2005 Και εδώ έρχεται αυτό που είχε ακούσει ο Μιχάλης. Να θυμίσω ότι στο Doom III οι σκιές γίνονται από την CPU!!! Επέτρεψέ μου ότι ο υπολογισμός των συντεταγμένων της τοποθεσίας των σκιών γίνεται από τον κεντρικό επεξεργαστή. To Doom3 χρησιμοποιεί dynamic stencil shadows και μάλλον τα ROPs σε μια σημερινή GPU δεν μένουν αμέτοχα. ΄Ενα συνθετικό μετροπρόγραμμα προσπάθησε σε σχετικό βαθμό να προσομειώσει τις δυναμικές σκιάσεις του Doom3 αρκετά πριν κυκλοφορήσει. Ο τρόπος με τον επεξεργάζονται τα stencil shadows εδώ είναι αρκετά παρόμοιος και βασίζεται σε τεχνική multipass: All shadows in D3DFableMark are soft-edged, and are rendered using the hardware stencil buffer. The CPU uses the light position and the model for each object to calculate multiple shadow volumes. The scene is rendered in multiple passes; first the scene is rendered using ambient lighting, which also prepares the depth buffer for stencil lighting. Then the shadow volumes are submitted and the contribution from each light source to each soft-edge volume is summed into the scene. Finally, the scene is rendered once again, this time modulating the textures by the results of the previous passes. The final result is a relatively high polygon count scene with approximately 95% of the polygons being translucent. http://www.pvrdev.com/pub/PC/extra/h/FableMark.htm Είχα ακούσει μια φορά ότι είχε πει για 64bit βάθος χρωμάτων αλλά δεν θυμάμαι τι. H τελική έκδοση χρησιμοποιεί το λεγόμενο ARB2 path; για Radeon FP24 και για GeForce FP16/32. Kαι φυσικά μιλάμε για εσωτερική ακρίβεια η οποία όντως υφίσταται προ πολλού στο εν λόγω παιχνίδι. (FP16 = 16bit floating point per colour component; thus 16bpp per RGBA or 64bpp internal accuracy. FP24 = 24bpp/RGBA or 96bpp; FP32 = 32bpp/RGBA or 128bpp internal accuracy). Τα σημεία που το παιχνίδι χρειάζεται πλέον των 64bpp/FP16 είναι αρκετά σπάνια. Ακόμα στον τομέα που είχε κατηγορηθεί ο John Carmak -και είχαν κάποιοι πει ότι το παρατραβάει- είναι στα textures per poly. Είχε πει ότι το Doom θα έχει 8(!!!) περάσματα ανά επιφάνεια όταν η καλύτερη κάρτα μπορούσε να επεξεργαστεί 4. Η δήλωση αυτή είχε γίνει πολύ πιο πριν την επίσημη κυκλοφορία του παιχνιδιού και γι’ αυτό ξένισε σε κάποιους. Να πω ότι οι υφές είναι main texture, defuse shading, bump mapping, Specular shading και κάνα ακόμα αν πέσει ο π.χ. φακός επάνω. Kαι η μηχανή του Q3A θεωρητικά υποστήριζε αρκετά MT layers, με την διαφορά ότι εξαναγκάζει κάθε GPU σε dual multitexturing ανεξαρτήτως αν αυτή δύναται να υποστηρίξει quad ή υψηλότερο βαθμό multitexturing και άρα εξαναγκάζονται σε multipass. Ο μέσος όρος στο Doom3 πρέπει να είναι κάπου στο ~6 layer MT, και ακόμα και να μην υπάρχει ο ως άνω εξαναγκασμός, μέχρι στιγμής βλέπω μόνο OpenGL ICDs που υποστηρίζουν 4 multitexturing units κι ας είναι OGL2.0 συμβατά. ΄Οσον αφορά για το πραγματικό θέμα των PPU, see first then judge για μένα προσωπικά.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.