PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Nahbare" Texturfilterung?


albix64
2009-02-28, 20:44:30
Hallo,

gibt es heutzutage noch eine Möglichkeit "nahbare" Texturfilterung (Point Sampling) zu aktivieren/erzwingen? Sieht ja teilweise sogar noch besser aus als bilineare Texturfilterung? Wie viel Performance würde das bringen?

Karte ist eine von ATI.

Spasstiger
2009-02-28, 21:13:31
Warum nicht anisotropes oder wenigstens trilineares Filtern? Pointsampling kannst du verwenden, wenn die Anwendung dafür einen Konsolenbefehl bietet. Im Allgemeinen rate ich aber dringend davon ab. Zumal es von der Performance evtl. sogar schlechter ist als anisotropes Filtern mit Mipmapping.

/EDIT: Mit DXTweaker kann man auch Pointsampling erzwingen (unter AF Control).

albix64
2009-02-28, 21:23:39
Ich will es nur probieren. :biggrin:

Aber warum sollte die Performance denn schlechter sein als mit Anisotropischer Filterung? Es verwenden ja alle Handyspiele und auch alte PC-Spiele alle Point Samplung, der Grund ist sicherlich die Leistung. Warum sollte die Performance davon also schlechter sein?

Spasstiger
2009-02-28, 21:32:49
Die Hardwareeinheiten der Grafikkarte machen bilineares Filtern for free, während Handy Games auf der CPU rendern, wo bilineares Filtern teuer ist. Und Grafiktreiber werden meistens auf anisotropes Filtern optimiert. Möglicherweise entfallen ein paar Treiberoptimierungen, wenn man Pointsampling verwendet, so dass die Performance letztlich sogar schlechter ausfällt.
Ist auch beim 16-Bit-Rendering so, das ist auf heutigen Karten langsamer als 32-Bit-Rendering.

albix64
2009-02-28, 21:44:20
Achso, jetzt ist mir das klar.

Der DXTweaker will bei mir nicht richtig funktionieren...was mache ich falsch?
http://www.abload.de/thumb/dxtweakerpontifn1.png (http://www.abload.de/image.php?img=dxtweakerpontifn1.png)

albix64
2009-02-28, 21:59:27
Scheinbar ist das Programm zu alt, die letzte Version, die ich gefunden habe, ist von 2005.

Ich habe gerade Half-Life 1 im Software-Modus getestet, dort wird Point Sampling benutzt, und das sieht imho wesentlich besser als Trilliineare Filterung ohne AF, trotz dessen, dass das Software-Rendering kein 32 Bit unterstützt. Gegen Trillineare Filterung + 16xAF kommt es aber logischerweise nicht an, dafür ist das Flimmern viel zu stark.

Spasstiger
2009-02-28, 22:21:14
In aktuelleren Spielen ist die Texturauflösung oft so hoch, dass es dir bei Pointsampling die Augen aus dem Kopf flimmern würde. Pointsampling ist auch die Texturfilterungsvariante, wo du pro Pixel die geringste Texturinformation erhältst. Bereits mit bilinearem Filtern + Mipmapping fließt mehr Texturinformation in jedes Pixel ein als bei Pointsampling. Und dank dem Mipmapping wird auch das Abtastgesetz eingehalten, sprich es flimmert nicht.

/EDIT: In der Source-Engine gibts den Befehl "mat_filtertextures 0/1". Damit kann man wohl auch Pointsampling erzwingen.

/EDIT2: Hier mal der Vergleich:

Setting 1
---
mat_filtertextures 0 <= Pointsampling
mat_filterlightmaps 0 <= Pointsampling auch bei den Lightmaps
mat_mipmaptextures 0 <= Mipmapping ausschalten
Das ergibt den typischen Softwarerendering-Look älterer Spiele. Flimmert aber wie Sau und alle Oberflächen sind aliasingbehaftet.
http://www.abload.de/thumb/ep2_outland_010009zqd3.jpg (http://www.abload.de/image.php?img=ep2_outland_010009zqd3.jpg)
37 fps

Setting 2
---
mat_filtertextures 1
mat_filterlightmaps 1
mat_mipmaptextures 1
bilineares Filtern
http://www.abload.de/thumb/ep2_outland_010008epb1.jpg (http://www.abload.de/image.php?img=ep2_outland_010008epb1.jpg)
37 fps

Setting 3
---
mat_filtertextures 1
mat_filterlightmaps 1
mat_mipmaptextures 1
16:1 anisotropes Filtern
http://www.abload.de/thumb/ep2_outland_0100070yjy.jpg (http://www.abload.de/image.php?img=ep2_outland_0100070yjy.jpg)
33 fps

Mit Pointsampling sieht es tatsächlich schärfer aus. Aber: Die Schärfe kommt nur vom Texturaliasing.

/EDIT3: Der Vollständigkeit halber noch mit Mipmapping und gefilterten Lightmaps:
Setting 4
---
mat_filtertextures 0 <= Pointsampling
mat_filterlightmaps 1
mat_mipmaptextures 1
http://www.abload.de/thumb/ep2_outland_010010n24p.jpg (http://www.abload.de/image.php?img=ep2_outland_010010n24p.jpg)
38 fps

Das ist also sogar die performanteste Einstellung (könnte evtl. damit zusammenhängen, dass meine Grafikkarte neben den TMUs auch reine Pointsampling-Einheiten hat). Und dank dem Mipmapping ist die Einstellung auch Nyquist-konform, d.h. es flimmert kaum. Dafür gibts die typischen Mipmapping-Bugwellen, die auch nicht gerade ansehnlich sind.

albix64
2009-02-28, 22:57:08
Danke für den Tipp mit der Source-Engine. Klappt einwandfrei, allerdings frage ich mich warum Valve das als Cheat zählt und ich dazu sv_cheats aktivieren muss, schließlich bringt das dem Spieler keinen Vorteil.

Das Flimmern ist weniger stark, als ich erwartet hätte, es stört genauer gesagt kaum. Allerdings frage ich mich warum die Texturen nicht anisotropisch gefiltert werden, bei dem Half-Life 1 Software-Rendering sind AFAIK schließlich ∞-fach gefiltert. (sieht zumindest so aus) Des weiteren sind die Gebäude-Schatten sehr verpixelt. (vermutlich sind sie statische niedrig aufgelöste Texturen oder doch ein Bug?) Hat jemand eine Idee, warum das so ist?

Hier mal ein Screenshot:
http://www.abload.de/thumb/clipboard013bpu.png (http://www.abload.de/image.php?img=clipboard013bpu.png)

Spasstiger
2009-02-28, 23:23:24
Des weiteren sind die Gebäude-Schatten sehr verpixelt.
Weil die statischen Schatten auch nur Texturen sind und somit vom Texturfilter behandelt werden (oder eben nicht).

Allerdings frage ich mich warum die Texturen nicht anisotropisch gefiltert werden, bei dem Half-Life 1 Software-Rendering sind AFAIK schließlich ∞-fach gefiltert.
Pointsampling und anisotropes Filtern zugleich widerspricht sich. Pointsampling bedeutet, dass pro Pixel genau ein Texel verwendet wird. Bei anisotropen Filtern werden pro Pixel viele Texel miteinander verrechnet.

albix64
2009-02-28, 23:46:45
Ohne Mipmaps ist das Flimmern echt übel, aber mit Mipmaps ist Point Sampling durchaus eine gute Alternative zum trillinären / billinären Filtern, wenn das Spiel darauf angepasst ist.

Spasstiger
2009-02-28, 23:51:32
Ich bleibe beim anisotropen Filtern. Seit mehr als 6 Jahren spiele ich ausnahmlos jedes Spiel mit anisotropem Filtern. Angesichts des geringen Performanceeinbruchs sehe ich keinen Grund, darauf zu verzichten.

Gast
2009-03-01, 00:11:17
In aktuelleren Spielen ist die Texturauflösung oft so hoch, dass es dir bei Pointsampling die Augen aus dem Kopf flimmern würde.

pointsampling mit mipmapping sollte eigentlich nich so stark flimmern, und durch die heutige hohe texturauflösung wesentlich weniger stören.

Stormscud
2009-03-01, 10:34:04
Jetzt noch die Auflösung runter und die Perspektivenkorrektur aus, dann haste PS1 Grafik :ucatch:
Sieht echt ein bißchen so aus, dieses miese Texturgrisseln und überall Quadrate. Aber nett anzuehen, wie das bei heutigen Spielen wirkt.

albix64
2009-03-01, 12:14:09
Pointsampling und anisotropes Filtern zugleich widerspricht sich. Pointsampling bedeutet, dass pro Pixel genau ein Texel verwendet wird. Bei anisotropen Filtern werden pro Pixel viele Texel miteinander verrechnet.
Ich meinte damit, dass die Texturen bis zu unendlicher Reichweite scharf sind.

PCGH_Raffael
2009-03-01, 13:05:55
Seht euch mal Crysis an. Dem Spiel kann man per Konsole ebenfalls Point Sampling aufdrücken. Das schaut im Stand gar nicht übel aus. Die sehr hochauflösenden Texturen flimmern bei der kleinsten Bewegung aber natürlich abartig. Speziell ab da, wo normalerweise das MIP-Mapping greift ...

MfG,
Raff

Spasstiger
2009-03-01, 15:05:53
Ich meinte damit, dass die Texturen bis zu unendlicher Reichweite scharf sind.
Das ist aber nur ohne Mipmapping der Fall. Und ohne Mipmapping ist die scheinbar höhere Schärfe alleine aufs Aliasing zurückzuführen. Aus dem Abtastgesetz von Shannon und Nyquist folgt, dass eine Textur mit der doppelten Auflösung abgetastet werden muss. D.h. pro 2*2 Bildschirmpixel darfst du nur 1 Texel haben, damit kein Texturaliasing auftritt. Daher auch die prinzipielle, leichte Unschärfe. Man kann dem Ganzen mit 2*2 Supersampling-AA entgegenwirken, dann hat man auf 2*2 Bildschirmpixeln auch 2*2 Texel ohne Aliasing. Hier gut zu sehen:
- 4xMSAA, kein SSAA-Anteil (http://www.computerbase.de/bildstrecke/23867/19/)
- 2x2 SSAA (http://www.computerbase.de/bildstrecke/23867/107/)
Die Texturen sind auf dem Bild mit 2x2 SSAA schärfer, weil sie schärfer sein dürfen, ohne das Abtastgesetz zu verletzen.

Gast
2009-03-01, 16:40:16
Ich meinte damit, dass die Texturen bis zu unendlicher Reichweite scharf sind.

dafür musst du nur mipmapping deaktivieren, das kannst du auch mit bilinearer bzw. anisotroper filterung machen.

wirklich schärfer wird es dadurch natürlich nicht, im gegenteil, durch die abtastlücken sind im bild wesentlich weniger informationen.

albix64
2009-03-01, 19:42:11
Ok, danke für die Informationen. Point Sampling lohnt sich demnach nur für Software-Rendering, dafür aber richtig.

Coda
2009-03-01, 20:27:27
Pointsampling und anisotropes Filtern zugleich widerspricht sich.
Nö. Man kann auch bei anisotropem filtern die einzelnen Samples mit nearest filtern statt bilinear.

Liszca
2009-03-08, 18:21:58
Seht euch mal Crysis an. Dem Spiel kann man per Konsole ebenfalls Point Sampling aufdrücken. Das schaut im Stand gar nicht übel aus. Die sehr hochauflösenden Texturen flimmern bei der kleinsten Bewegung aber natürlich abartig. Speziell ab da, wo normalerweise das MIP-Mapping greift ...

MfG,
Raff

geht das auch bei der demo? wie ist der befehl?