Hvad er fysik?
Det simple svar på spørgsmålet ville være, at fysik er når to eller flere objekter kolliderer og den korrekte respons skal beregnes.
AGEIAT tager selvfølgelig definitionen af hvad fysik er lidt længere og introducerer 4 nøgleord:
Fidelity: Præcis og mere troværdig repræsentation af verden. Scale: Antallet af fysiske objekter der kan simuleres eller opnåeligt niveauet af effekter. Interaction: Overbevisende interaktivitet hvor ethvert objekt kan påvirke og reagere med ethvert andet objekt i en scene. Sophistication: Typer af fysiske effekter og objekter der kan simuleres. Til at illustrere disse bruger AGEIAT et med en bil, der bliver væltet om på siden efter en bombeeksplosion. Fidelity ville være evnen til at afbilde en overbevise visuelt repræsentation af kollisioner, deformeringer og dynamik efter eksplosionen.
Eftereffekter så som røg og støv ville kræve enorm Scale med tusinder og atter tusinder af partikler, der alle påvirker hinanden.
Et eksempel på Interaction kunne være en ødelagt brandhane, som sprøjtede vand på bilens kofanger. Hvis man tog det et skridt videre, ville smadret glas blive kastet tilbage fra jorden og skære gennem tøj båret af karakterer i nærheden af eksplosionen.
Det sidste punkt på listen, Sophistication, kunne repræsenteres ved modeller af fysiske objekter, som ikke længere ville være bundet til kasser og kugler, men i stedet avancerede geometriske modeller. Modeller som er deformerbare og mulige at ødelægge, samt opbygget af fleksible led og avancerede modeller for materiale og friktion.
Til sammen giver disse 4 nøgleord det, som AGEIAT kalder Advanced Gaming Physics.
Selv om det er muligt at finde hardware, som kan afvikle hvert af disse punkter, ville det være på bekostning af de tre andre. Selv med hardware, som kan afvikle alle 4 punkter på én gang ville det ikke være med stor nok kompleksitet, til at kunne udføre jobbet overbevisende. Her kommer PhysX ind i billedet.
For at kunne gennemføre et overbevisende Advanced Gaming Physics miljø i et spil, kræver det et stykke hardware, som er specielt udviklet til dette. Her kommer CPU'er og GPU/VPU'er til kort. CPU'en største force er, at den er ekstremt alsidig. En CPU kan groft sagt bruges til alt, uanset opgaven. På sin vis er det også CPU'ens største ulempe, idet den ikke har en opgave, som den er rigtig god til at udføre. Det har GPU'er VPU'er derimod. GPU'er og VPU'er er afsindigt gode til at regne på pixels og skygger, men de er i sidste ende alt for specialiserede, til at kunne håndtere den type beregninger, som fysik kræver. Dertil klarer man sig med bedst med et dedikeret stykke hardware: PhysX.
Et eksempel på de arkitekturmæssige fordele i PPU'en, er den interne båndbredde, som er på intet mindre end 2 Tb/s! Til sammenligning kan et grafikkort, selv med en 512 bit intern bus ved samme hastighed som kernen, ikke engang opnå 350 Gb/s. For CPU'er ser tallet endnu værre ud. Dette betyder dog ikke, at arbejdet er gjort ved blot at sætte et stykke specialiseret bagved. I sidste ende kræver det også knowhow at lave de komplekse algoritmer og software, som kan presse alt dette ned på én tressindstyvendedel af et sekund. Derfor mener AGEIAT at CPU'er og GPU/VPU'er bør holde sig til det de er beregnet til og lade PhysX håndtere fysik. Det betyder dog ikke, at PhysX er et stykke hardware, som kan gøre jobbet alene. For at få en fuldendt spiloplevelse skal alle tre punkter i AGEIATs Gaming Power Triangle være tilstede:
I AGEIATs Gaming Power Triangle er PPU'en sidestillet med CPU'en og GPU/VPU'en. Som tidligere skrevet, så mener AGEIAT, at de tre Processing Units skal gøre det, de hver især gør bedst. CPU'en skal lede og fordele arbejdet, samt tage sig af AI bererninger. GPU/VPU'en skal rendere det viste billede og PPU'en skal tage sig af fysikken. Simpelt er det.
Hvad kan man så med PhysX? AGEIAT har kogt det ned til 7 punkter, som PhysX tager sig af:
Rigid body dynamics: Et stift legeme (ingen sjofle kommentarer tak) er et objekt, som ikke kan deformere. Et eksempel herpå er en billardkugle. Når to billardkugler støder sammen overføres kinetisk energi fra en kugle til en anden, men uden at kuglen mister sin form. Stive legemer er typisk det man ser anvendt i nuværende spil til f.eks. kasser. Dette bevirker, at en papkasse ikke kan knuse, om man så placere en bil oven på den.
Soft body dynamics: Et blødt legeme er, i modsætning til et stift legeme, et objekt som kan deformeres. For nu at vende tilbage til eksemplet med billardkuglerne, så kunne man forestille sig, at den ene billardkugle blev udskiftet med en badebold. Når en billardkugle rammer en badebold, vil langt mindre af den kinetiske energi bliver overført til badebolden i form af kinetisk energi. I stedet vil en del af energien i stedet sørge for, at der bliver efterladt et solidt aftryk af billardkuglen i badebolden. Dette kunne f.eks. også bruges ved skudhuller i forskellige metal overflader. Eksempler på brug af dette i spil er begrænsede og i mangle tilfælde bruges blot mange mindre stive legemer, til at simulere et stort blødt legeme.
Universal collision detection: Universel kollisionsdetektion er en af de mest basale fysikberegninger, som er implementeret i alle spil. F.eks. bruges kollisionsdetektion i et FPS spil, når der skal afgøres om en spiller kan gå videre ind mod en væg, når han allerede står op ad den. Et typisk eksempel på dårlig implementering af kollisiondetektion er når våbnet, holdt at spilleren stående op ad væggen, stikker ud på den anden side af væggen.
Finite element analysis: Finite element analysis minder lidt om bløde legemer, men med den forskel, at der skal bruges meget større kræfter til at deformere disse. Et eksempel på dette kunne være en metaldrager i et hus, der ikke deformerer, før man belaster den med meget tunge objekter. Implementering af finite element analysis er meget begrænset, hvis ikke ikkeeksisterende.
Fluid dynamics: Væskers dynamic siger lidt sig selv. Det handler om hvordan f.eks. vand opfører sig og skal simuleres. Det er forsøgt igen og igen og nogle af forsøgene er ganske imponerende, men der er aldrig rigtig nogen, der har opnået et troværdigt resultat. Det skulle være slut nu. En ting der måske overrasker nogen er, at simulering af røg også hører under væskers dynamik.
Hair simulation: Et punkt der også er ganske selvsigende. Hårsimulation kender vi allerede fra NVIDIAs Nalu techdemo. Dog er det begrænset hvor mange spil man har set det implementeret i.
Real clothing simulation: Sidste punkt på listen siger også sig selv. Det handler om tøjsimulering, der skal være mere end blot en tekstur, der er lagt oven på modellen af karakteren, som bærer tøjet. Tøj skal være løstsiddende, deformerbart og følge karakterens bevægelse. Eksempler på implementering af dette ser man i f.eks. Hitman eller Max Payne.
Skulle man være interesseret i at læse mere om de arkitekturmæssige fordele, der gør PPU'en overlegen til fysikberegninger i forhold til CPU/GPU/VPU'er, kan jeg henvise til følgende whitepaper fra AGEIAT:
http://www.ageia.com/pdf/wp_advanced_gaming_physics.pdf