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

1

04.03.2012, 12:58

Textur nachträglich Filtern

Hallo. Ich muss in meinem Programm eine Textur ohne Filter laden weil ich die einzelnen Pixel in der Orginalfarbe brauche. (Sobald ich beim laden Filter verwende wird die Farbe Minimal verfälscht).

Gibt es eine Möglichkeit die Textur nach abgeschlossener Arbeit "Nachträglich" zu Filtern?

D3DXFilterTexture habe ich bereits getestet was leider keinen Unterschied gemacht hat.

Moe

Frischling

Beiträge: 85

Wohnort: München

  • Private Nachricht senden

2

04.03.2012, 13:03

Mir fallen spontan zwei Möglichkeiten ein:
Entweder du filterst (manuell) im Shader, nachdem deine Berechnungen fertig sind, oder Du renderst dein Ergebnis Off-Screen und filterst dann in einem zweiten Renderpass, der die Ausgabe auf den Bildschirm übernimmt.

3

04.03.2012, 14:06

Was die Zweitgenannte möglichkeit angeht habe ich leider gerade keine Vorstellung wie das aussehen kann/soll

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

04.03.2012, 14:31

Was genau willst du wie genau filtern und wo liegt das Problem mit dem Filter beim Laden?
Was genau verstehst du unter "nach abgeschlossener Arbeit filtern"?

5

04.03.2012, 15:26

Mit Filtern meine ich die Filtereinstellung beim laden von Texturen -> D3DX_FILTER_BOX zb.

Ohne Diese Filter werden die Texturen nicht skaliert und sehen nicht besonders gut aus ^^

Mit Diesen Filtern Verändern sich die RGB werte der Pixel minimal. Das ist insofern schlecht das ich keine Möglichkeit mehr habe eine EXAKTE Farbe (Bestimmter RGB Wert) zu finden.

Nach Abgeschlossener Arbeit meine ich nachdem ich Bestimmte Pixel nach Farbe suche und ersetzte oder Maskiere. (Mit LockRect und UnlockRect)

Sprich: Ich Will das Bild ohne Filter Laden -> Danach aber mit Filtern anzeigen.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

04.03.2012, 16:24

Je nachdem was du damit berechnen möchtest, reicht es vielleicht schon aus die Textur zwei mal zu laden. Ansonsten würde ich auch spontan auf Shader setzen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

7

04.03.2012, 16:30

Nein 2x Laden bringt mir nichts. Ich Manipuliere ja die eine Grafik. Und der Shaderprogrammierung bin ich leider nicht mächtig.

8

04.03.2012, 17:09

Ich hatte bereits getestet ob es Funktioniert mit D3DXSaveTextureToFileInMemory und D3DXCreateTextureFromFileInMemoryEx aber leider auch nichts.

Moe

Frischling

Beiträge: 85

Wohnort: München

  • Private Nachricht senden

9

04.03.2012, 18:25

Was die Zweitgenannte möglichkeit angeht habe ich leider gerade keine Vorstellung wie das aussehen kann/soll

Du generierst eine Textur, in die Du über ein Framebuffer Off-Screen renderst (z.B. mit einem Viereck auf Vollbildgröße). Hier wendest Du deine Texturverarbeitung an und hast dann das Ergebnis in einer neuen Textur. Mit der renderst Du dann die Szene "normal" auf den Bildschirm und kannst die Filter, die Du von Direct3D haben willst, verwenden.
Wie das genau in Direct3D geht, weiß ich nicht, Direct3D mache ich so gut wie nie, ich kann es Dir nur in OpenGL genauer sagen.

10

04.03.2012, 18:31

Ja womit wir wieder beim Problem wären: Wie kann ich nachträglich Filter anwenden?

Also das Hauptproblem neben dem umstand das alles sehr "Pixelig" aussieht ohne Filter ist der Umstand das die Texturen nicht skaliert werden wie es "mit" Filter der fall wäre

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Coldsoul« (04.03.2012, 18:41)


Werbeanzeige