Ich benutze libGDX für ein Android-Spiel. Soweit ich das beurteilen kann, gibt es keine API zum Verwischen.
Beim Lesen auf Wikipedia scheint es, als würde Unschärfe entstehen, wenn die RGB-Werte für jedes Pixel auf den Durchschnitt aller benachbarten Werte gesetzt werden. Was in libGDX nicht einfach zu sein scheint - Pixeldaten einstellen.
Meine Frage ist also einfach:
Ist es möglich, (eine anständige) Unschärfe nur mit Bildern zu fälschen?
Ich kann möglicherweise mehrere Bilder (in Anzahl, Transparenz, Typ) überlagern. Aber kann ich so eine überzeugende Unschärfe erzeugen?
Ich bin versucht, "Nein" zu sagen, aber vielleicht hat jemand anderes etwas Ähnliches erreicht. Aus Gründen der Übersichtlichkeit möchte ich eine Reihe von mehr als 1 allgemeinen Bildern, die ich über JEDEM Bild rendern kann, um einen unscharfen Effekt zu erzielen.
quelle
Antworten:
Wenn Sie Bilder additiv mischen und dabei mit einer Konstanten multiplizieren können, können Sie eine Unschärfe ausführen. Anstatt die Pixel in einer Nachbarschaft zu mitteln, würden Sie mehrere Kopien des Bildes mitteln, die um eine kleine Anzahl von Pixeln voneinander versetzt sind. Oder allgemeiner gesagt, Sie können eine Gaußsche Unschärfe oder eine andere Art von Unschärfe ausführen, indem Sie die Gewichte steuern - dh jede verschobene Kopie des Bildes mit einer Konstanten multiplizieren, während sie dem Rest hinzugefügt wird.
Algorithmisch würde es ungefähr so aussehen:
Sie würden die gleichen Offsets und Gewichte verwenden wie bei der Standardmethode zum Verwischen. Im Internet gibt es zahlreiche Artikel darüber, wie Sie beispielsweise die Gewichte für eine Gaußsche Unschärfe generieren können.
quelle
Unschärfe kann eine teure Operation sein, vielleicht könnte ein anderer Ansatz funktionieren, z.
quelle