[Special] Geschreven door Paul S op 2002-09-27 00:52:33

DM: FPS en polygonen

Een van de gebieden waar de Nintendo 64 nog wel eens problemen wilde hebben is het aantal frames per seconde (het aantal beeldjes dat wordt berekend en weergegeven) dat het apparaat weer kon geven. Omdat het aantal frames per seconde direct afhangt van de grafische kracht (het is dan ook dé maatstaaf om PC hardware te vergelijken) wilde het beeld bij sommige N64 games wel eens stotteren. De GameCube heeft hier gelukkig bijna geen last van en alle games lopen om en nabij een vaste framerate. Die framerate is meestal 30 frames per seconde, maar ook vaak 60 frames per seconde. Als een developer meer detail in zijn game wil, dan zal hij eerder voor 30fps dan voor 60fps kiezen, simpelweg omdat 30fps respectievelijk 2 keer zoveel detail toelaat, omdat je 2 keer zoveel tijd krijgt om één frame te tekenen. Een schilder die 2 keer zoveel keer tijd krijgt maakt nu eenmaal ook een meer gedetailleerd schilderij (oké, oké, dat hangt ook van de schilder af). De keuze die we nu maken is heel simpel. 60 Frames per seconde moet standaard worden. En nu komt mijn filosofie achter de hardware: Developers hoeven niet op de grafische kant van hun game te letten, zodat ze zich kunnen bekommeren om de gameplay. Hoe wil je dit bereiken? Door de GPU zo te maken dat hij precies zoveel kan berekenen als nodig is. De verdere uitwerking hiervan behoort niet in deze aflevering van DM, maar hiermee beginnen kan geen kwaad (Als je het nu niet snapt, maak je geen zorgen dat komt nog wel). Oké een berekening (de eerste van vele): 720 * 480 pixels = 345.600 pixels per frame 345.600p * 60 frames = 20.736.000 We ronden dit af op 20,8M (M staat voor mega of miljoen). Dit zijn het aantal polygonen die je nodig hebt om iedere seconde alle pixels in elk van de 60 beeldjes te vullen met één polygoon. Ik denk dat je nu ook wel snapt wat ik bedoel met m’n filosofie. Zorg dat je iedere pixel op ieder plaatje kunt vullen met één polygoon en dat is de prestatie die de GPU moet leveren. Helaas werkt het niet zo makkelijk, je zit namelijk te eerste met clipping: Alles wat buiten beeld valt moet van het plaatje worden afgesneden, daarnaast heb je nog polygonen die achter andere polygonen vallen en dus nutteloos worden gerenderd. Zo zijn er nog wel meer problemen die optreden, maar daar ga ik nu dus niet op in. Laten we het zo zeggen: Het kan grotendeels opgelost worden. Maar voor de zekerheid (en omdat sommige features misschien meer gebruikt worden en meer kracht opeisen) zullen we die 20,8M polygonen maar even vermenigvuldigen met 3 (wat het gemiddelde is van het overschrijven van een pixel in de framebuffer). Dus: 20,8M * 3 = 62,4M Als we kijken naar de prestaties van de GameCube dan is dit een ZEER realistische prestatie. Het is namelijk 5 tot 10 keer meer dan wat de GameCube weergeeft (die prestaties zijn ongeveer 6-12M polygonen per seconde mét effecten). De N64 kon ongeveer 100.000 polygonen per seconde laten zien, wat, ten opzichte van de GameCube, een verbeteringsratio is van 1:60 tot 1:120. De 1:5 tot 1:10 van de GameCube tegenover DM zou dus makkelijk te halen moeten zijn. We hebben nu dus de volgende info over de prestaties die we willen hebben: -Een maximale resolutie van 720 * 480 -Een standaard framerate van 60 frames per seconde -Een aantal van ruim 62.000.000 polygonen per seconde Reacties zijn altijd welkom. De volgende keer: Eisen aan de GPU Tot dan!