Hoofdcategorieën

'Gpu-physics-engine van Havok is gereed'

Door René Wichers, maandag 20 maart 2006 16:22
Bron: The Register Hardware, views: 36.679

Volgens nVidia en Havok is de software waarmee videokaarten natuurkundige berekeningen uit handen van de processor kunnen nemen, klaar voor een publieke demonstratie. De Havok FX-engine, die eind vorig jaar werd aangekondigd, zou deze week tijdens de Game Developer's Conference in San Jose gepresenteerd worden. Havoks FX-software biedt een API waarmee de Shader Model 3-render engine van recente grafische kaarten gebruikt kan worden voor zaken als collision detection, niet-elastische botsingen, vloeistofmechanica en een natuurgetrouwe weergave van haren. Hoewel nVidia de kans te baat nam om de kwaliteiten van een Havok-GeForce-combinatie te prijzen, zou de software ook goed overweg moeten kunnen met ATi-kaarten die over SM3.0 beschikken.

Lust voor het oog, rust voor de cpu Een succesvolle presentatie zou betekenen dat Ageia, het bedrijf dat met de 'PhysX' een aparte chip voor dergelijke berekeningen ontwierp, een flinke dreun te verwerken krijgt. Ageia zou oorspronkelijk al eind vorig jaar met een productpresentatie komen, maar tot dusverre zijn insteekkaarten met de natuurkundechips, die zowel gpu als cpu moeten ontlasten, nog niet in de winkel gesignaleerd. Bovendien hebben de bezitters van recente nVidia- en ATi-kaarten de benodigde hardware al in huis; een driverupdate zou voldoende moeten zijn om de cpu te kunnen ontlasten. Daarbij moet aangetekend worden dat het succes van zowel Havok FX als PhysX uiteindelijk afhankelijk zal zijn van de ondersteuning door games. Terwijl support voor de PhysX-hardware inmiddels is ingebouwd in 3dMark06, Unreal Engine 3.0, Tom Clancy's Ghost Recon: Advanced Warfighter en Warhammer, komt nVidia vooralsnog niet verder dan een aantal ontwikkelaars die met de Havok-software 'aan het spelen zijn.'

Volgende 16:32
Vorige 14:37

Reacties

«  1  2  3  4  »

Denk dat nVidia hier uiteindelijk toch zal winnen. Eerlijk gezegd denk ik ook dat het wel de makkelijke manier is om zooi te implementeren.
Daarnaast zit denk ik heel de computerwereld niet te wachten op het feit dat je naast een grafische kaart van 600 euro ook eens zoveel euro moet neerleggen voor de physX om volledig de mogelijkheden van een spel te gebruiken.

Denk ook dat als physX echt goed is, het nog steeds betekent dat Havok ernaast geimplementeerd zal worden, gewoon omdat het geen extra hardware vereist. Terwijl andersom het einde van physX zou betekenen.


EDIT@digitalhardc0r3: ze gebruiken bij Havok gewoon de nu al geimplementeerde SM3.0 engine. dus in princiepe als je een kaart hebt met SM3.0 dan werkt het spel dus met de extra Havok functies. Alleen een driverupdate is daarvoor nodig.

Naar mijn mening heeft een physX kaart wel een paar voordelen.

Ik denk namelijk niet dat videokaarten tijdens zware applicaties (lees: games) veel processorkracht over hebben voor andere berekeningen. Mijn vraag is dan voornamelijk waar halen ze het overschot vandaan?

Ander voordeel is dat het een extrakaart is, die kunnen langer meegaan dan een gemiddelde videokaart.

Voor het geld van een PhysX kaart, kun je er dan echter wel een (of zelfs twee) videokaartjes bijgooien }>.

Dat is omdat ze net nieuw zijn, ik verwacht dat ze over een jaartje stukken goedkoper zijn.

Ik deel jou mening volledig, tijdens games en dergelijke heeft de videokaart echt niet veel tijd om ook nog wat physics berekeningen te gaan doen, en als ie dat wel moet dan zal dat FPS kosten...

@E-Mail - eerste geruchten gingen dat de PhysX kaart rond 200 euro zou gaan kosten, als ik me goed herinner, hier koop je echt geen supersnelle videokaart voor, laat staan dat je genoeg PCIe16x slots hebt om er een paar bij te plaatsen! |:(

Dat denk jij, vaak is de processor toch de bottleneck bij ultra moderne videokaarten. Als de videokaart wat werk kan overnemen van de processor zou het geheel best wel eens wat sneller kunnen draaien.

[edit]doublepost :(
Niet alleen naar score moderaties kijken, maar eerst alles doorlezen..

Naar mijn mening heeft een physX kaart wel een paar voordelen.

Ik denk namelijk niet dat videokaarten tijdens zware applicaties (lees: games) veel processorkracht over hebben voor andere berekeningen. Mijn vraag is dan voornamelijk waar halen ze het overschot vandaan?

Ander voordeel is dat het een extrakaart is, die kunnen langer meegaan dan een gemiddelde videokaart.
Eventjes beantwoorden:

Als je de benchmarks bekijkt, merk je herhaalt een probleem op. Het feit dat de CPU al te vaak niet in staat is om de GPU te voeden. Je moet al extreme hoge resoluties gaan combineren met AA & AF, om de GPU maximaal te stressen.

Beeld je nu in dat de GPU een deel van de physic overneemt. De GPU zou beter in staat zijn om Physic's te doen dan de CPU. Met als gevolg, dat de GPU met een lichte inpakt, de CPU ontlast. Maar omdat de CPU ontlast word, kan de CPU dan weer meer data verzetten, met als gevolg dat de GPU sneller kan renderen. Je moet het bezien als 5% fps verliezen omdat de GPU het werk doet, maar 10% extra fps kunnen krijgen omdat de CPU minder werk heeft. M.a.w, men wint een 5%

Het is duidelijk dat de GPU's enorm snel aan het ontwikkelen geweest zijn. Bekijk de snelheidswinst van een 3 jaar oude GPU, en een 3 jaar oude CPU. De GPU springt met een enorme sprong, waarbij de CPU's bijna niet vooruit gegaan zijn. Men probeert dit nu op te lossen met X2 ( dual core ) cpu's, maar het is een werk van lange adem ( nog veel dat niet multi thread is, en zeker & vast games ).

I.v.m je 2de argument. Idd, zo een apparte kaart neemt de last van je CPU, zonder je GPU te comprimeren. Het probleem is, de prijs. Extreem duur. En er zit een fout in je logica. Het klopt dat de apparte Physics kaart langer zal meegaan dan een GPU, maar je vergeet een detail. Met bijna ieder generatie GPU, is er meer & meer winst.

M.a.w, de GPU die je morgen vervangt, zal mechien in staat zijn 25% sneller de Physics te doen, dan je oude GPU. En de GPU daarachter weeral, en die daarachter weeral. En als je opmerkt dat Nvidia & Ati proberen de SM3.0 te gebruiken voor Physics, hoe lang denk je dat het zal duren eer een aantal Physics specifieke routines gaat bijvoegen in de GPU's. Ik denk bij de volgende DX10 generatie dit jaar, dat er al specifieke instructies gaan inzitten.

Die addonkaart verloop al haar nut het moment dat nvidia & ati besloten om physics ook via de gpu te gaan leveren. Die firma kan niet opvechten tegen die 2 powerhouses, en dan zit men nog met de kostprijs van die kaart. Voor die prijs koop je een 2de GPU bij, die dan mechien ook nog eens extra Physics werk kan doen ( en de extra renderspeed / fps van de GPU zelf niet vergeten )

We zullen zien, maar men zal een duchtig product op de markt moeten brengen, met zeer low cost, want anders verliest men vs nvidia & ati in de long run.

@argentus
Beeld je nu in dat de GPU een deel van de physic overneemt. De GPU zou beter in staat zijn om Physic's te doen dan de CPU. Met als gevolg, dat de GPU met een lichte inpakt, de CPU ontlast. Maar omdat de CPU ontlast word, kan de CPU dan weer meer data verzetten, met als gevolg dat de GPU sneller kan renderen. Je moet het bezien als 5% fps verliezen omdat de GPU het werk doet, maar 10% extra fps kunnen krijgen omdat de CPU minder werk heeft. M.a.w, men wint een 5%
Je een heel belangrijk iets.
A) De CPU wordt wel ontlast maar de GPU juist belast.
B) Heel belnagrijk niet met die zielige Physics belasting wat 'n gemiddelde CPU aankan maar met 'n veel uitgebreidere en zwaardere Physics belasting.

PPU zorgt juist voor meer en zwaardere Physics fetures. Dus dan praat je niet zozeer van ontlasting maar van 'n toevoeging van verschillende Physics feature op een hogere belasting. Het is dus niet voor meer performance maar voor nieuwe of uitgebreidere game Physics features waar specifieke hardware voor nodig is om dat mogelijk te maken.

'n beetje GPU zou genoeg reserve moeten hebben om alleen de CPU te ontlasten Dus die Physic voor CPU belasting op zich te nemen, maar voor veel zwaarde Physic voldoet die reserves niet.

De Devs hebben al laten weten dat voor het juiste rendement je toch 'n SLI/CF opstelling nodig hebt.Of 'n appart GPU er naast moet zetten.
'n High-end kaart op niet al te hoge setting zou wat reserve over moeten hebben om nog redelijk te kunnen versnellen.

Dus wat doet de PPU die ontlast de CPU én GPU.
Dus als je PPU vs HAvok FX doet.
Mid-GPU+ PPU vs High-end-GPU
High-end-GPU+ PPU vs High-end + midrange GPU of SLI/CF

'n Zelfde GPU config VS iets met 'n PPU zal de PPU( de CPU én GPU) ontastende Config toch betere Performance kunnen neerzetten.

Dus Havok FX lijkt goedkoper maar dat valt enigzins mee. Je moet extra GPU power in calculeren.
@dangerpaki
Denk dat nVidia hier uiteindelijk toch zal winnen
Oh ja? Waar leund Physics FX zwaar op. Zou dat niet juist de PixelShader units zijn. Daar waar ATI juist nu meer en krachtige implementaties van heeft.

Ik denk dus eerder ATI.

Daarnaast heb ik ook ergens gelezen van Havoc dat ze meer gericht zijn op fire and forget Physics.
CPU-> PHYSICS-> GPU Meer GFX gerelateerde Physics.
Novodex is meer geschikt voor doorberekening.
CPU->PPU->CPU-GPU.
Graphics effect Physics vs Gamelogic Physics.

Zoals Haar vs collision Physics.

Beide kunnen ze allemaal aan maar de ene toch beter dan de andere.
@dangerPaki
Denk ook dat als physX echt goed is, het nog steeds betekent dat Havok ernaast geimplementeerd zal worden, gewoon omdat het geen extra hardware vereist. Terwijl andersom het einde van physX zou betekenen.
Havok vereist juist meer GPU power om PPU te evenaren. PhysX heeft in de Dev wereld juist aardig wat support. Havok FX ligd wel een groot maar belasthardware target platform al voorhanden. Maar de Dev's moeten nog beginnen. Dus Achterstand.
EDIT@digitalhardc0r3: ze gebruiken bij Havok gewoon de nu al geimplementeerde SM3.0 engine. dus in princiepe als je een kaart hebt met SM3.0 dan werkt het spel dus met de extra Havok functies. Alleen een driverupdate is daarvoor nodig.
Nee 'n oud Havoc spel blijft gewoon het zelfde spel waarvoor die CPU physics belasting de huidige CPU krachtig genoeg voor zijn. Dus sowieso neit ontlast hoeven te worden, waar je dus geen ruk merk van Havok FX CPU ontlasting.Als de Patch alleen de bestaande oude Physics omleid naar de GPU.
Om oude games Havok games baat bij HAvokFX te hebben moet de Patch de Physics belasting vergroten zodat het spel ook daadwerkelijk anders aanvoeld kwa features. en dat is een hele andere opgave. Niet zomaar effe gepatched.

Dus voor bestaande Havoc games hebben er niet veel aan tenzij er 'n patch komt die de Physics belasting zwaar uitbreidt.

Ik weet niet of het een kwestie van "winnen" gaat worden. Het lijkt mij wel interessant om beiden als optie te hebben. Dat zou kunnen als ze naar een standaard API gaan. In dat geval kan je als gebruiker kiezen. Heb je een aparte physics kaart, dan wordt die gebruikt, zo niet, maar wel een goede videokaart, dan doet die het erbij. Geen van beiden? Dan een software implementatie die CPU kost.
Op deze manier hoeven game/simulatie/???? bouwers maar één API te ondersteunen, en kunnen de gebruikers ervan zelf hun configuratie aanpassen op het voor gebruik dat ze voor ogen hebben.

Ik denk dat die PhysX kaart met speciale drivers gaat komen om in elk modern spel te kunnen assisteren.

Nee. Havok maar ook PhysicX is oorspronkelijk 'n Physics API
Havok API -> Hardware SM3 GPU's - Hardware accelerated Havok FX API
NovodeX API -> Hardware PPU -> Novodex PhysX API

Het verschil zit hem vooral in de hardware.

Als je 600 euro uit gaat geven aan een videokaart kun je die 100 euro ook wel neertellen voor een, wss iets langer meegaand, physics kaartje.

Als je denkt dat je met simpelweg een driver update in alle spellen opeens GPU physics in al je games krijgt heb je het toch echt allemaal verkeerd begrepen. De GPU gaat gebruikt worden voor bepaalde special effects voor physics (particle physics bv, zoals stromend water bv), niet voor algemene physics effecten (full scene collisions ed).

Daarnaast, kost dit allemaal geheugen en shader tijd op de GPU, dus het is niet alsof je dat zo maar in een bestaande game kan donderden zonder gevolgen.

Verder noemt nVidia dit product consistent "SLI Physics", dus je argument van een tweede dure kaart snap ik ook niet helemaal.

Bovendien hebben de bezitters van recente nVidia- en ATi-kaarten de benodigde hardware al in huis; een driverupdate zou voldoende moeten zijn om de cpu te kunnen ontlasten.
Dat is dus zeer mooi aangezien ik net 350 euro uit heb gegeven aan een nieuwe grafische kaart. :)

Ik vind het altijd onwijs interessant dit soort ontwikkelingen, ze brengen iets nieuws naar de computerwereld en als gevolg zullen we over een tijd weer meer gewaagde sprongen zien wat betreft engines/games. :)

Ik hoop ook dat dat dit de weg naar meer GPU gebaseerde softeware vrijmaakt.

Folding@home zou b.v. bezig zijn aan een client.

Wat is dat 'n Top midrange semi high-end kaart.
De hardware heb je al alelen is die al zwaar belast door de Grafische render engine van de game. Physics erbij word dringen en dus 'n FPS performance hit.

je moet daarvan dus 'n CF/SLI setje van maken om niet te veel in te leveren op Grafische kracht.

Tja, wat is recent?
Een 6800GT Ultra? Of eentje uit de 7x serie?

Als je de moeite neemt om het artikel te lezen of uberhaupt de first-post even te lezen: SM3.0 moet ondersteund worden door je kaart om gebruik te maken van Havok.

Recent is met een
Shader Model 3-render engine
.

Shader Model 3.0 is vereist schijnbaar. De 6x00 reeks van nVidia ondersteunt 3.0 (tenminste, bijna van wat ik begrepen heb). Dus vanaf die reeks zou het moeten lukken. Voor ATI zou het vanaf de 1x00 reeks moeten kunnen.

Maar ja, zodra een spel qua snelheid gelimiteerd wordt door de snelheid van je videokaart en je laat óók nog eens een reeks natuurkundige berekeningen uitvoeren door diezelfde kaart, dan daalt de framerate eerder dan dat 'ie stijgt.

natuurlijk koopt niet iedereen een 7900GTX of een een X1900, maar die dingen worden voor de moment gelimiteerd door de cpu zoals de FX60

als ik dus een A64 3500+ heb zal een 7600GT misschien ook wel wat over hebben en krijg je het dus gratis :)

extra kaarten = duur

ik denk dat we vooral eerst eens moeten afwachten naar wat tests, over hoeveel rekenkracht hebben we het hier? als het de framerate bv 5-10% doet dalen, mogen ze hun extra physics kaart houden hoor, daalt het meer... tja, dan wordt het misschien wel interessant voor een extra kaart

over? grafische kaarten hebben nooit iets 'over', behalve als je een frameratelock instelt.Anders zullen ze gewoon zo snel draaien als ze kunnen, 100% belasting dus.

Wat denk je? Ze hebben het over SM3.0 kaarten, dus dat zijn al 6x00 kaarten...

edit: spuitelf :7


:D Waarschijnlijk niks denk ik

FEAR doet niet zoveel met physics als bijvoorbeeld Half-Life 2 of Painkiller...

Ben ik blij dat ik al m'n games op een console speel. Voor de rts spellen die ik speel heb gelukkig geen zware videokaart nodig.

Ja, Bij een pc vervang je onderdelen
Bij een Console vervang je... Juist de console.

'n PC is 'n heel breed toepasbaar ding.
Console is mee rvoor games en tegen woordig ook als beperkte mediacenter.

PC is veel meer. Dus om van 'n gemiddelde breed gebruikte PC 'n Game rig van te maken heb je vooral of vaak alleen 'n betere voor games geschiktere G-kaart voor nodig.
daarbij worden veel PC als standaard met 'n beetje game kaart uitgerust. dus vaak is het wat bij leggen voor 'n iets krachtigere model.

Het betekent wel dat heel veel data die voorheen uit het RAM gebruikt werd, nu ineens naar de GPU gestuurd zal moeten worden. Zo wordt normaal alleen maar naar de GPU verstuurd wat in het gezichtsveld van de speler valt. Wanneer je van de GPU resultaten van je shaders wilt terugontvangen in je game-engine zal je alle meshes (ook onzichtbare) er naartoe moeten sturen, omdat ook botsingen e.d. buiten het gezichtsveld van de speler van belang zijn.

Misschien is dit het moment om mesh instancing toe te gaan passen in game engines om de bandbreedte opvulling binnen de perken te houden.

Ik vraag me echter af wat nou het idee is van deze softwarematige physics engine. Gebruikt ie de triangles die je toch al naar de GPU stuurt, of wordt er gewoon voor 't renderen van 't beeld gebruik gemaakt van de snelle vector mogelijkheden van de GPU en staat dit volledig los van het renderproces?

Meestal zit een groot deel van deze data toch al op de GPU, ook al valt hij buiten het gezichtsveld. In DirectX vul je in principe 1 keer je buffers voor je meshes op de video kaart en deze data blijft daar totdat ie ofwel handmatig wordt verwijderd of DirectX besluit om het voor je op te ruimen (via een 'managed' geheugen pool). Mesh vertex en index data neemt relatief weinig ruimte in beslag tov textures bijvoorbeeld, dus dit is doorgaans geen probleem.

Ik weet niet hoe Havok precies werkt, maar ik denk dat het eigenljk gewoon een toepassing is van 'rekenen' op de GPU, wat uitgelegd wordt in het GPU Gems boek van NVidia. In principe gebruik je textures en/of meshes om je numerieke/geometrische data te representeren en gebruik je een (HLSL) shader om hierop bepaalde berekeningen uit te voeren. De GPU wordt hierbij in principe behandelt als een aparte processor waarvoor je de data via deze omweg aanlevert, dus het heeft niet noodzakelijk iets met renderen van doen.

Vaak wordt voor collision detection/response een lagere resolutie mesh van een model gebruikt dan voor de visuele weergave ervan. De bandbreedte die nodig is voor het versturen van collision mesh vertices naar de gpu blijft hiermee binnen de perken.

Ach, 4gb/s up en hetzelfde down, moet lukken toch?

nospoon: uiteraard is dat 't geval bij CPU's (in eerste instantie met een bounding box of sphere, en daarna op de mesh zelf), maar als 't over de GPU gaat kan ik me zo voorstellen dat gewoon de zelfde vertexbuffers gebruikt gaan worden.

dtech:
4gb/sec delen door 't aantal frames per seconde eh ;)

Zo wordt normaal alleen maar naar de GPU verstuurd wat in het gezichtsveld van de speler valt
Data die zich dus niet op de GPU bevindt zul je dus typisch in een lagere resolutie willen versturen. Verder is collision detection/response kostbaarder (uitgedrukt in tijd) wanneer gewerkt wordt met (onnodig) complexe modellen.

Een software engine die de GPU moet ontlasten? Was het niet zo dat een Software engine vele malen trager en belastender is dan een GPU of CPU oplossing?
Mijn Videokaartje doet het dus nu met gemak, maar mijn CPU draait wel overuren om deze te ontlasten.....

Ik denk dat ze hier de software voor de drivers bedoelen die op je GPU rekenen.

Net zoals je zwaar rekenwerk kunt uitbesteden aan je GPU 8-)

Nou vraag ik me af, wordt Physics nu een onderdeel van de gameplay? Bijvoorbeeld als je Pong Jelly zou maken waarbij je plankje van gelatine is. als je dan een minder snel physics berekend betekend dit dat je plankje anders reageerd (op basis van oude physics gegevens). Dit zou dan een probleem vormen. Klopt dit of maak ik een denkfout?

Aangezien met de hardwarematige oplossing je een platform hebt, maar met de software implementatie je zoveel verschillende implementaties hebt.. men moet dan een minimale implementatie vereisen voor het spel ofzo?

Physics is altijd al onderdeel van de gameplay geweest. Ik snap niet precies wat je daar mee bedoelt. Traditioneel worden physics, geluid, input, netwerk allemaal op een per-frame basis afgehandeld (je kon dit bijvoorbeeld terugzien in Quake, waar het forceren naar een lage FPS ook minder bandbreedte-verbruik betekende). Dan maakt het ook niet zo veel uit of iets even wat langzamer draait, want de afgelegde afstand van je balletje per frame is gewoon iets groter en de physics houdt hier rekening mee. Een dergelijke factor zou je gewoon mee kunnen sturen naar de shader die physics uitvoert en die er dan rekening mee kan houden en die zelfde compensatie uitvoeren, die normaal door de CPU wordt gedaan.

Of het naarmate game engines multi-threaded worden nog zo eenvoudig blijft is de vraag. Wanneer je het renderproces los gaat zien van physics, betekent dat dat het renderen van een frame niet meer de toon zet. Dat maakt het bouwen van een game engine er niet makkelijker op. Het is geen A -> B -> C -> D meer. De volgorde wordt variabel en het zal ook parallel gaan lopen. Hoe eenvoudig 't is om dit proces door de GPU te laten uitvoeren als physics berekeningen niet gesynchroniseerd met frame-rendering lopen, is maar de vraag.

wordt je rocket jump opeens een stuk hoger met een sneller videokaart :+

Dat is dus ook zo in Q3.
Met een hogere framerate kan je bepaalde sprongen wel halen die ja anders niet kan halen. Dat is allang bekend.

85,125 en 333 fps om precies te zijn ;)

Het punt is dat nu Physics Hardware geaccelereerd wordt door hardware die er veel efficenter en krachtiger voor is. Dan die CPU.

Dit houd in Physics blijven nog steed diezelfde Physics maar het kan nu op veel grotere schaal worden toegepast en ook verschilende Physics features simultaan.
Ook Physic Features die zoveel kracht vereisen dat toen niet rendable was op de CPU kan nu wel toegepast worden.

in die link naar vorige tweakers artikel staat het volgende:

Het grote probleem van het gebruik van de videokaart voor het overnemen van berekeningen is dat deze het zelf ook regelmatig erg druk zal hebben. Havok geeft aan dat de aanwezigheid van een tweetal videokaarten daarom ook de voorkeur verdient.

Heb je alsnog een extra onkostenpost. Als ze die physx kaart nu redelijke goedkoop kunnen krijgen lijkt me dat toch de beste optie.

Ik ben benieuwd welke videokaart het qua performance kan gaan opnemen tegen zo'n physics kaart. Als blijkt dat een 6600GT of zelfs een 6200 voldoende power heeft, dan kon Ageia wel eens een probleem hebben. Dan plaats je gewoon een goedkope videokaart extra in plaats van zo'n relatief duur PhysX ding (200+ euro toch?). Tijd voor specifieke physics benchmarks. :)

Klinkt interessant, maar het is dan maar de vraag of je Havoc op een andere gpu kunt laten rekenen dan DirectX/OpenGL.

Ik vraag me ook af hoe deze extra belasting van de GPU zich zal vertalen in performance. Tenzij je beschikt over 2 dikke kaarten in SLI\Croosfire, zijn er al voldoende games ide de meeste moderne GPU's op de knieen weten te krijgen. Als de GPU dan ook nog eens druk is met andere zaken dan pure beeldbewerkingen, kon het wel eens zijn dat je framerate in elkaar zakt.

-edit- Moet net iets sneller tikken ;-)
«  1  2  3  4  »

Op dit item kan niet meer gereageerd worden.

Volgende 16:32
Vorige 14:37
VNU Media logo Powered by True

© 1998 - 2008 Tweakers.net - Alle rechten voorbehouden

Uitgever van: