Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

11

13.07.2013, 17:46

Ist langsamer als ein Mittelwertfilter aber genauso trivial


Soweit alles richtig, und eine prima Vergleichsaufstellung, aber den Satz wollte ich so nicht stehen lassen. Es sind in der Theorie zwar mehr MatheOps als beim Mean Filter, aber in der Praxis sind praktisch allein die Texturzugriffe performance-relevant, jegliche Mathe-Ops nebenbei kriegst Du quasi kostenlos. Daher immer Gaussen, nicht bloß mitteln :-) Sieht einfach besser aus.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

12

14.07.2013, 19:39

Zudem gibt's Shader-Befehle, die eine Multiplikation und eine Addition vereinen ("MAD").
Soweit ich weiß, brauchen die auf heutiger Hardware genauso lange wie nur eine Addition oder nur eine Multiplikation.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

14.07.2013, 20:52

Zudem gibt's Shader-Befehle, die eine Multiplikation und eine Addition vereinen ("MAD").
Soweit ich weiß, brauchen die auf heutiger Hardware genauso lange wie nur eine Addition oder nur eine Multiplikation.

Das ist korrekt, wobei diese Instruktionen heutzutage meist unter dem Namen "FMA" (fused multiply add) gehandelt werden; ein MAD ist, im Gegensatz zu einem FMA, nicht notwendigerweise fused, kann also von der Hardware auch als zwei getrennte Operationen ausgeführt werden... ;)
Auf einer GTX680 ist ein FMA mit floats gleich schnell als eine simple float Addition oder Multiplikation und z.B. 6x schneller als eine int Multiplikation oder ein Bitshift. Man muss aber aufpassen, seinen Code so zu schreiben, dass der Compiler FMA einsetzen darf, da ein FMA sich auch bezüglich Genauigkeit anders Verhält als eine getrennte Multiplikation und Addition (FMA ist genauer) und der Compiler in vielen Fällen, in denen man evtl. erwarten würde, dass ein FMA draus wird, keines draus machen darf, da es das Programm verändern würde.

PS: FMA gibts mittlerweile übrigens auch auf der CPU: http://en.wikipedia.org/wiki/FMA_instruction_set ;)

Werbeanzeige