2010-11-25 11 views
2

Ich versuche, einen OpenGL-Fragment-Shader zu erstellen, der ein normales Bild in ein Bild mit Fischaugeneffekt konvertiert. Das ist, was ich mit Fischaugeneffekt meine (http://www.marcofolio.net/photoshop/create_a_fish_eye_lens_effect_in_photoshop.html).Algorithmus zum Erstellen von Fisheye-Effekt aus einem normalen Bild

Mit normalem Bild meine ich ein gerenderten Bild von einer virtuellen Kamera in einer interaktiven 3D-Umgebung, nicht ein Bild von einer echten Kamera genommen, aber ich denke, das macht nicht wirklich viel Unterschied in Bezug auf dieses Problem.

Hat jemand eine Idee, wie Photoshop es macht, oder wo finde ich Material, das den Algorithmus erklärt?

Dank

Antwort

2

Sie brauchen nicht wirklich einen Shader in diesem Fall. Aus dem Klang der Dinge haben Sie Ihr Originalbild als eine Art Bitmap. Wenn das so ist, benutze es einfach als Textur und befestige es an einer Kugel.

Natürlich können Sie können einen Shader (oder ein paar Shader, wirklich) verwenden, aber wenn Sie mehr tun als Sie beschrieben haben, wird dies nicht viel gewinnen (wenn überhaupt) .

+0

Das Quellbild ist keine Bitmap, sondern die Ausgabe des Framebuffers (FBO). Macht das einen Unterschied? – Adham

+0

@Adham: Es vereinfacht die Dinge ein wenig. Bei einem FBO werden Sie zu einer Textur rendern. Anstatt also eine Bitmap in eine Textur zu laden, verwenden Sie einfach die Textur aus dem FBO. (Technisch gesehen können Sie auch einen FBO verwenden, um einen RenderBuffer zu rendern, aber in diesem Fall möchten Sie wahrscheinlich nicht). –

+0

ok, jetzt was ich wollte das Bild den Bildschirm ausfüllen und nicht nur rund, wie dies zum Beispiel (http://idea.hosting.lv/a/gfx/quakeshots.html) – Adham

Verwandte Themen