Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 77 reacties
Submitter: player-x

Medewerkers van Nvidia hebben in samenwerking met de technische universiteit van MŁnchen een techniek ontwikkeld die zij subpixel reconstruction antialiasing noemen. De techniek zou een concurrrent voor AMD's mlaa vormen.

AMD ontwikkelde mlaa, ofwel morphological antialiasing, als een methode om kartelranden te verminderen door post processing-filters te gebruiken voor de video-output. De mlaa-techniek houdt rekening met de vorm van objecten, om zo de antialiasing efficiënter te maken. AMD introduceerde mlaa bij zijn Radeon 6870-videokaarten met Catalyst-driver 10.10a. Nvidia zou met zijn nieuwe techniek, die het subpixel reconstruction antialiasing ofwel sraa noemt, een concurrerende technologie hebben ontwikkeld, die eveneens antialiasing moet bewerkstelligen zonder veel rekenkracht te vergen.

De onderzoekers hebben een samenvatting van hun techniek op Nvidia's website gepubliceerd, waarin ze uitleggen hoe de sraa-techniek werkt. Door single pixel shading te combineren met data op subpixelniveau willen de ontwikkelaars betere beelden zonder kartelrandjes leveren. Daaronder zouden de prestaties van de videokaart weinig te lijden hebben, aangezien de techniek werkt met gerenderde afbeeldingen en data uit buffers gebruikt.

Volgens de drie onderzoekers zou sraa een afbeelding van 1280x720 pixels in 1,8ms verwerken en een antialiased beeld leveren dat vergelijkbaar is met 4x tot 16x AA. Net als AMD's mlaa zou Nvidia's sraa via drivers geïmplementeerd kunnen worden. Zolang de gpu programmeerbare shaders heeft, kan de techniek gebruikt worden.

Moderatie-faq Wijzig weergave

Reacties (77)

Ik begin mij af te vragen waarom de nieuwste kaarten nodig zijn voor dit soort achterhaalde technologiŽn. Met een simpel shaderbestandje en een een DirectX hook kun je dit soort AA in bijna elke game implementeren. Oude kaarten kunnen zo lekker efficiŽnt toch redelijke plaatjes op het beeld krijgen. Zie ENB Series voor GTA IV, daar kun je kiezen tussen SSAA en een ander dingetje dat op MLAA lijkt. Werkt prima. En het ziet er exact hetzelfde uit als ATI's officiŽle MLAA. Dus waarom exclusief voor nieuwe kaarten? Zij hebben dit juist niet nodig, een HD6870 kan moeiteloos een spel zoals GTA IV renderen op 3x de resolutie van de monitor, en dan terugresizen met een gaussian blur filter. Resultaat: superkwaliteit.

Waarom, videokaartbedrijven? Waarom moeten consumenten nieuwe videokaarten kopen om van prehistorische techniek gebruik te maken, die een enkele Rus met teveel tijd ook kan maken?
Klopt. ik draai zelf ook ENB Series 0.79 op GTA IV met custom settings. Ik gebruik gewoon 1920*1080 met AA enabled, dus het wordt 3840*2160 volgens GTA IV en die downsampled hij gewoon. Ziet er erg mooi uit. Nadeel is alleen dat er weinig kaarten zijn die dan nog 50FPS willen halen. Ik doe zo'n 15-20 met een 9800GX2 met AA enabled.

Beetje offtopic maar waarom gebruiken de makers van dit soort spellen / applicaties dan zelf niet dit soort technieken als hun spel ''geen AA ondersteund''.

Is het trouwens zo dat deze beide vormen van AA geforced kunnen worden in applicaties / games die dit niet native ondersteunen zoals bijvoorbeeld GTA IV?
Ik doe zo'n 15-20 met een 9800GX2 met AA enabled.
Sommige games zijn dan nog wel speelbaar maar anno 2011 is het wel een lage framerate.
Beetje offtopic maar waarom gebruiken de makers van dit soort spellen / applicaties dan zelf niet dit soort technieken als hun spel ''geen AA ondersteund''.
Je bedoelt mlaa of subpixel reconstruction?
Omdat die technieken nog niet, dan wel pas sinds kort bestaan, en/of omdat per game zo'n wiel opnieuw uitvinden veel ontwikkeltijd vergt.

Als een game AA niet ondersteunt dan is dat omdat de ontwikkelaars ervan weten dat met AA de framerate van hun game onacceptabel laag zou zijn. Vaak kan dmv de video driver zo'n game alsnog worden gedwongen om AA te gebruiken.
Volgens mij moeten we gewoon eens af van de hele AA door richten schermen te gaan met een veel hogere pixeldichtheid. Door die op te voeren heb je al die kunstgrepen niet meer nodig.
Hogere PPI is anders ook veel zwaarder hoor (ten minste neem aan dat je het aantal pixels omhoog wilt gooien ipv grootte van het schemr te verkleinen :))....

1920*1080 is 4x zo licht als 3840*2160, uiteraard leverd dat een erg fijn beeld op dat weer wel, maar je monitor is ook minimaal 1000/1500 euro ipv een fullhd monitor die je nu al voor 120/150 euro hebt :D

Dus ja die kunstgrepen zijn nou nog nodig ja, of je moet 5x zo veel neer leggen om te gamen, ik iig niet :)

[Reactie gewijzigd door watercoolertje op 31 januari 2011 12:57]

Alleen zullen de schermen dan vele malen duurder worden terwijl het voor normaal gebruik niet nodig zou zijn omdat de letters te priegelig worden, of omdat je de resolutie teniet doet door de boel te vergroten. Ook in games kost het renderen op hogere resolutie met per pixel lighting en shading ook veel rekenkracht en wordt er meer geheugen vereist. Op zich is dit dan nog heel geen verkeerde oplossing vanuit het kostenperspectief.
Nee, letters worden niet priegelig van een hogere resolutie. Ze kunen alleen nouwkeuriger gerenderd worden. Heb je wel eens een iPhone 4 scherm bekeken en vergeleken met een ander scherm bijvoorbeeld? Dan zie je wat ik bedoel. Rondingen, schuine lijnen, fonts... alles wordt scherper.

En ja, natuurlijk kost dat meer rekenkracht. Maar daar is het effect dan ook naar.
Maar het punt waar iedereen nu juist op ingaat is dat ATS zegt dat we AA maar moeten laten zitten en het veel makkelijker is de pixeldichtheid omhoog te gooien. Dat is dus niet het geval: het kost veel meer (rekenkracht).

Dat het met een hogere pixeldichtheid mooier kan worden is iedereen het wel over eens...
Niet echt. AA is efficiŽnter dan domweg een belachelijk hoge resolutie te maken. Op jouw manier hebben we straks schermen van 7680*4320 nodig om pixels 1 op 1 te kunnen weergeven. hehe :P Het kost ook kwadratisch zoveel rekenkracht. Het verschil tussen 1280*960 en 1024*768 is al immens, terwijl de beeldkwaliteit er niet merkbaar door verandert.

[Reactie gewijzigd door ikt op 31 januari 2011 12:57]

In dat laatste geval: als je 2 schermen neemt met een native resolutie zoals je daar stelt, zul je dat vast wel merken. Als de resolutie (en pixelpitch) voldoende hoog zouden zijn, zouden we het niet kunnen zien, zoals men probeert met bijvoorbeeld de iPhone 4 met meer dan 300 ppi. Allleen wordt de resolutie op een 20" of 24" scherm dan zo absurd hoog dat je dan zelfs niet het lichtste spelletje op native resolutie kunt spelen met laten we zeggen een quad-sli gtx 580 opstelling.
Valt wel mee, hoor. Zolang de meeste developers gewoon de cheap way out kiezen en hun game op de PS3 bouwen, zitten moderne videokaarten nog lang niet aan hun tax - de GPU uit een console loopt inmiddels drie ŗ vier generaties achter. Het wordt pas lelijk als je dan een PC-only titel voluit wil gaan draaien.
wat heeft dit nu er mee te maken? Consoleports zijn juist berucht voor hun belabberde performance. Als ze PC only maken en goed optimaliseren met PC technieken dan krijg je juist games die een stuk beter draaien. Natuurlijk geven ze dan ook opties om meer eyecandy toe te voegen waardoor de spellen op max een stuk zwaarder zijn, maar dat neemt niet weg dat veel PC only games juist uitstekend draaien zelfs op iets oudere systemen, terwijl verschrikkelijke ports zoals GTA4 niet vooruit te branden zijn op moderne game systemen.

Een 16:9 24" scherm is 20.8inch breed en 11.7inch hoog. aan 300ppi is dat dus een resolutie van 6240x3510, bijna 22 megapixels. Dat is meer dan de resolutie waarin de meeste films worden in opgenomen! Dat is 10 keer meer dan FullHD, de maximale resolutie van de PS3. Stel nu dat we een scherm hebben van deze resolutie. Met eyefinity kan je tot 6 FullHD schermen tegelijk van beeld voorzien. We kunnen dus op dit moment met consumer electronics maar 60% van de benodigde pixels leveren, puur hardwarematig. We zijn nog niet gaan kijken naar hoeveel kracht er nodig is om dat beeld te berekenen. De performance is ruwweg ook een tiende van de FullHD performance, maar dat is maar een deel van het plaatje. Als we per pixel dezelfde kwaliteit willen moeten we ook 10 keer grotere textures pakken, en 10 keer meer tesselation toepassen. De grafische kaarten hebben gewoon niet genoeg bandbreedte voor al deze gegevens, en ze zijn ook gewoon niet snel genoeg om al die gegevens dan ook nog te verwerken aan een normaal tempo.

De komende paar jaar gaan al deze dingen zeeeeker nog te veel zijn voor consumer PCs. AA blijft op dit moment dus een veel efficientere oplossing
vind het maar een overbodige functie.
ik heb een 24 inch 1920x1200 scherm en ik gebruik NOOIT aa omdat dat geen nut heefd als je gamed op de passieve resolutie van het scherm aangezien je de randen niet gladder kan maken dan omdat er simpelwegt niet meer pixels aanwezig zijn om gladdere randen weer te geven.
Om het voorbeeld even overzichtelijk te houden gebruik ik even een 4x4 scherm en ťťn kleurkanaal (grey scale, 0 t/m 9).
Als je nu boven een wit vlak hebt en onder een zwart vlak, waarbij de scheiding ongeveer (maar niet precies) horizontaal loopt, dan stuur je dus naar die zestien pixels de volgende waarden
0 0 0 0
0 0 0 9
0 9 9 9
9 9 9 9
en krijg je zo'n lelijk "trappetje". (Op jouw 1920x1200 scherm zie je dat niet omdat elke "trede" zo vreselijk klein is, maar het effect treedt wel degelijk op.)
Door er nu AA overheen te gooien krijg je bijvoorbeeld
0 0 0 1
0 1 5 5
5 5 8 9
8 9 9 9
en weg is het trappetje, vervangen door een mooie gladde rand, zonder meer pixels te gebruiken.
offtopic:
Wat is een passieve resolutie? Bedoel je niet toevallig de native resolutie?
"Heefd"...!? Je hoeft van mij niet foutloos te spellen, maar dat is wel heel ernstig...

[Reactie gewijzigd door robvanwijk op 1 februari 2011 23:42]

Jammer dat AA sowieso al veel GPU-kracht vergt. Heb het bijna altijd uitstaan als ik fatsoenlijk een FPS wil spelen. Heb al een AMD-kaart dus die zou het leuk moeten kunnen, maar vind het nog teveel frames-per-second kosten.

Wel laat dat Nvidia komt met een antwoord op AMD's MLAA dan trouwens.
Zolang je fps nooit onder de 50/60 komt heb je nergens last van. Speel je met een minimum van 120+ fps ben je bezig met overkill. Je mooie LCD/TFT scherm geeft er namelijk maar 60 per seconde weer. Alles dr tussen wordt...weggegooid/niet getoond.

Als je dus in intensieve scenes er maar voor zorgt dat je fps nog steeds op 60 of meer staat is alles prima.
Le Bullshit :)

Mijn 120Hz TFT geeft 120 beelden per seconden weer. Verder heb je in sommige games (die draaien op de quake-engine bijvoorbeeld) voordelen als je met 250 FPS speelt. Je bewering gaat misschien op als je 'eens af en toe' een game speelt, maar als je competetief op LAN-nivo speelt, ga je daar heel anders tegenaan kijken ;)
als je competief speelt kijk je niet naar hz, maar naar imput lag, anders heeft die 120hz ook geen hol zin ;)

[Reactie gewijzigd door flippy.nl op 31 januari 2011 16:32]

Dat is niet persť waar. In de Call of Duty engines (specifiek die van cod4 in dit geval) is 125,250 of 333fps halen een must als je bepaalde "jumps" wilt kunnen doen. Er zijn jumps die in competitieve play toegelaten zijn die enkel mogelijk zijn als je 250fps stabiel hebt.
Dit is natuurlijk meer een bug in de engine dan iets anders, maar op hoger niveau pakken ze je erop als je geen 250fps haalt.
hz <> fps. Het ene gaat over de snelheid waarmee de videokaart rendert, het andere over de gameloop. Een "slimme" driver die bekend is met deze COD bug zou gewoon elk 5de frame kunnen pakken, en dat renderen op 50Hz, terwijl de engine denkt dat het hele spel op 250 fps draait. Weet dat ding veel dat 4 van elke 5 frames genegeerd worden.
die gameloops zitten wel vast aan de frames. De engine heeft de vorige frame en de status van de physics en speler nodig voordat hij de volgende kan berekenen. Het splitsen gaat misschien, maar dat hangt echt van de engine af en moet ook in de engine zelf worden aangepast. Het is en blijft ook een bug natuurlijk. Een bug die misschien morgen gepatched kan worden. Dan zit je daar me je driver die niet doet wat er verwacht wordt. Een driver moet doen wat de engine zegt wat hij moet doen, zo snel mogelijk. Als de engine zegt dat de driver 250fps moet berekenen, dan moet die driver dat doen, ookal worden er maar 60 of 120 echt gebruikt
Kun je niet gewoon verder van de TV afzitten? Dan zie je de pixels vanzelf niet meer... :D
vroeger hadden we de AA zo mooi voor elkaar, nu moet het met allemaal 'hacks' (wat dit imho zijn) die er toch net wat minder mooi uitzien :(

probleem is dat veel spellen tegenwoordig de lighting deferren, dwz; de licht-berekeningen worden gedaan met een paar textures die over het algemeen even groot zijn als je resolutie. voor elke pixel heb je dan bijv de kleur, de normaal, de 'glimmendheid' etcetera als input, vervolgens kun je daarmee per licht de 'resultaatpixels' berekenen en overlayen op je beeldbuffer.

nadeel is dus dat je daadwerkelijk x * y pixels aan beeldinformatie hebt, en niet stiekem 'tussen de pixels' kunt kijken. nouja, tenzij je je buffers dus 4x zo groot maakt en daarna downscaled, maarja, of je daar nou blij van wordt :)

elke vooruitgang kent zo z'n nadelen.. ;) (voordeel is wel dat je bijna gratis een enorme lading lichten kunt berekenen, dus het is het wel waard :))

[Reactie gewijzigd door bazkie_botsauto op 31 januari 2011 13:44]

Misschien toch iets over het hoofd gezien ? , door de implementatie van een eigen CPU die Nvidia al aankondigde zodat de kaart meer instructies direct kan verwerken is dit misschien ook wel een logische stap , subpixel reconstruction antialiasing voor de cores plus CPU , AA word dan nog interessanter en sneller als het direct op de kaart gebeurd.
Volgens de drie onderzoekers zou sraa een afbeelding van 1280x720 pixels in 1,8ms verwerken
Aan dat getalletje hebben we niks als zowel de hoeveelheid en snelheid van het geheugen ontbreken als de hoeveelheid, snelheid en verdere specificaties van de benodigde compute units (de SPs waarschijnlijk) volledig ontbreken... |:(
Het is gewoon een algoritme dat de feed na renderen een blur geeft maar dan slimmer.

Maar op Full HD resoluties maakt het niet veel uit ik speel GTA 4 heeft geen anti-aliasing en het ziet er ook goed uit.
Als we van alles verschillende versies gaan ontwikkelen voor iedere fabrikant, dan is het heel simpel: WE GEBRUIKEN HET NIET!
Als mijn game alleen maar op AMD of NVidia kaarten werkt, dan zou dat niet erg goed verkopen, niet waar?

Zien we al games die OpenCL gebruiken? Nee, terwijl het zo'n mooie techniek is. Hoe komt dat? Omdat zowel AMD als Nvidia een eigen versie heeft.
Als we van alles verschillende versies gaan ontwikkelen voor iedere fabrikant, dan is het heel simpel: WE GEBRUIKEN HET NIET!
Als mijn game alleen maar op AMD of NVidia kaarten werkt, dan zou dat niet erg goed verkopen, niet waar?
AA is in beginsel onafhankelijk vd applicatie/game.
Nu ook al gebruiken AMD en NVIDIA verschillende AA methodes zonder dat games daar een probleem mee hebben.
Als een game AA niet ondersteunt dan is dat omdat de ontwikkelaars ervan weten dat met AA de framerate van hun game onacceptabel laag zou zijn.

CUDA/OpenCL is een ander verhaal.
AMD ondersteund als enige van de twee OpenCL. Alleen Nvidia weigert dat te doen, omdat Nvidia altijd eigen technologie wil gebruiken.

http://www.amd.com/us/pro.../opencl/Pages/opencl.aspx

Roep dus niet voordat je je bronnen hebt gecheckt.
nVidia ondersteund perfect OpenCL, alleen zetten ze in op CUDA, omdat het:
- door henzelf ontwikkeld is
- aanzienlijk meer volwassen is als OpenCL
- door veel meer applicaties ondersteund wordt
- Physx via CUDA werkt

Ik meen ergens gelezen te hebben dat nVidia aanbood aan ATi om ook gebruik te maken van CUDA, maar ATi weigerde dit omdat ze OpenCL willen gebruiken en nVidia niet willen helpen met CUDA groter te maken.
Ik meen ergens gelezen te hebben dat nVidia aanbood aan ATi om ook gebruik te maken van CUDA, maar ATi weigerde dit omdat ze OpenCL willen gebruiken en nVidia niet willen helpen met CUDA groter te maken.
En ik meen gelezen te hebben dat Nvidia dat niet gratis gaan doen ;). NVidia heeft hier nog altijd de rechten op en die licenties gaan echt niet gratis worden. Je kan het dus ook anders formuleren: AMD weigeren dit omdat ze geen zin hebben om te dokken voor iets dat in handen is van NVidia (AMD heeft er in beginne geheel geen zeggenschap over) terwijl er een open alternatief voor is.

[Reactie gewijzigd door bwerg op 31 januari 2011 14:20]

AMD ondersteund als enige van de twee OpenCL. Alleen Nvidia weigert dat te doen, omdat Nvidia altijd eigen technologie wil gebruiken.
Ahum...
Roep dus niet voordat je je bronnen hebt gecheckt.
Misschien je eigen advies zelf ook eens ter harte nemen?
AMD ondersteund als enige van de twee OpenCL. Alleen Nvidia weigert dat te doen, omdat Nvidia altijd eigen technologie wil gebruiken. Roep dus niet voordat je je bronnen hebt gecheckt.
Loop niet zo te trollen op Nvidia, Relief2009. Zoals de mensen onder jou ook al zeggen heeft Nvidia wel degelijk ondersteuning voor OpenCL. bron
OpenCL is OpenCL; er zijn meerdere versies.

nvidia heeft CUDA en OpenCL, AMD heeft OpenCL.

OpenCL draait, zover ik weet, op alle DX11-compatible kaarten, net als OpenGL 4.0, zowel op nvidia's als AMD's kaartjes.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True