2009-08-01 4 views
7

Können Sie mir bitte einen Hinweis geben, der mir hilft, zu verstehen, wie Scanline-basierte Rendering-Engines funktionieren? Ich möchte eine 2D-Rendering-Engine implementieren, die regionsbasiertes Clipping, einfaches Zeichnen von Formen und Füllen mit Anti-Aliasing und grundlegende Transformationen (Perspektive, Drehung, Skalierung) unterstützt. Ich brauche Algorithmen, die der Leistung Vorrang vor Qualität geben, weil ich sie für Embedded-Systeme ohne FPU implementieren will.Wie funktionieren Scanline-basierte 2D-Rendering-Engines?

+0

Meinst du GPU (Graphics Processing Unit) oder FPU (Floating-Point Unit)? – colithium

+0

ich meine keine GPU und keine FPU nur ARM926EJS RISC Prozessor mit 200 MHz und 32 MB SDram läuft mit 100 MHz. – SunnyShah

Antwort

4

zeige ich in meinem Alter wahrscheinlich, aber ich liebe meine Kopie von Foley, Feiner, van Dam, and Hughes (The White Book).

Jim Blinn hatte eine tolle Kolumne, die als Buch Jim Blinn's Corner: A Trip Down the Graphics Pipeline erhältlich ist.

Beide sind jetzt nicht mehr datiert, und abgesehen von den Prinzipien der 3D-Geometrie sind sie nicht sehr nützlich für die Programmierung der heutigen leistungsstarken Pixelschieber.

OTOH, sie sind wahrscheinlich einfach perfekt für eine eingebettete Umgebung ohne GPU oder FPU!

+0

Hi mtnygard, Ich kaufte (Foley, Feiner, van Dam und Hughes) Buch. Danke für den Vorschlag. – SunnyShah

4

Hier ist eine gute Artikelserie von Chris Hecker, die Software-Rasterung umfasst:

http://chrishecker.com/Miscellaneous_Technical_Articles

Und hier ist eine Website, die Gespräche über und enthält Code für einen Software-Rasterizer. Es wurde für ein System geschrieben, das keine FPU (das GP2X) und eine Quelle für eine Fixed-Point-Math-Bibliothek enthält.

http://www.trenki.net

+0

Nun, Links sind sehr gut für 3D-Rendering, aber ich möchte einen 2D-Renderer implementieren. – SunnyShah

+0

Arbeitet an 3D, nachdem ich 2D implementiert habe. – SunnyShah

2

Ich bin mir nicht sicher über den Rest, aber ich kann Ihnen mit schneller Skalierung und 2D-Rotation für ARM (in Assembler-Sprache geschrieben) helfen. Schauen Sie sich eine Demo:

http://www.modaco.com/content/smartphone-software-games/291993/bbgfx-2d-graphics-library-beta/

L. B.

+0

Hi LB, Ich habe in diesem Link keinen Rotations- und Skalierungscode gefunden. Es ist leer. Ich bin gespannt, wie man eine Bitmap drehen kann. – SunnyShah

+0

Der Link ist ein Post auf Modaco über eine 2D-Grafik-Engine, an der ich arbeite. Es enthält eine schnelle ARM-Assembler-Sprache, um 2D-Bitmaps in Echtzeit zu rotieren. Hier ist der Link zur Demo-Anwendung (Windows Mobile) und Beispielcode: www.bitbanksoftware.com/private/bbgfx_demo.zip – BitBank

+0

Bitbank Ich kann Assembly-optimierte Funktionen in der ZIP-Datei nicht finden, werden Sie bitte überprüfen und erzählen ich wo sie sind? Danke. – SunnyShah