Hallo,
wir benötigen einen
OpenGL-Renderer. Zunächst wären wir mit den Basics zufrieden.
Folgendes sollte die Software können.
Rendern mit statischer Kamera auf einer Auflösung von 1920*1080.
Das Rendern soll in einen TGA oder PNG-Datei erfolgen und wahlweise in einen FBO-Stream, den wir später an eine Videokarte umleiten möchten.
Es ist unbedingt erforderlich, dass das Rendern IMMER mit Alpha-Kanal geschieht.
Es sollte nach Möglichkeit eine Szene gerendert werden, in der eine PNG-Datei mit transparentem Verlauf geladen und als Hintergrund für einen Text benutzt wird.
Virtuell wäre die hierarchische Struktur dann ungefähr so:
- group
-> Text-Objekt auf Z = 0 (Tahoma, 40px Font.Size)
-> Hintergrund-Bild auf Z = -1 (also dahinter)
- Logo-Objekt auf Z = 0.5 (also vor dem Hintergrund-Bild)
Die beiden Objekte sollten nach Möglichkeit in einer Art virtueller Gruppe zusammengefasst sein und rein animiert werden.
Am Anfang ist die Szene leer.
Die
groupsollte dann von links nach rechts im Bild animiert werden.
Ungefähr so:
Frame 0
group.Opacity = 0%
group.Position.X = -300px
Animation bis
Frame 24
group.Opacity = 100%
group.Position.X = +300px
Das Logo sollte wie folgt animiert werden
Frame 0
logo.Opacity = 0%
logo.Scale = 0
Frame 25
logo.Opacity = 0%
logo.Scale = 0
Frame 48
logo.Opacity = 100%
logo.Scale = 1
Es sollte mit einem internen Koordinaten-System gearbeitet werden, bei dem man mit realen Pixel-Angaben arbeiten kann, also Werte zwischen 0-1920px und 0-1080px.
Die Orientierung wäre für uns unten link = 0,0.
Eine Sekunde besteht aus 24 Frames. Die Animation dauert also 2 Sekunden.
Es wäre toll, wenn die Render-Software startet und nicht sofort mit der Ausgabe beginnt, sondern erst, wenn man einen Button betätigt.
Die Ausgabe der Animation reicht auf einem Panel im Programm. Das Exportieren des letzten Frames wäre über einen zusätzlichen Button sinnvoll. Dabei sollte das letzte Frame als 32-Bit.tga oder png gespeichert werden, mit korrektem Alpha-Kanal. Also da wo kein Inhalt ist, sollte alles leer sein.
Ein Beispiel-Output hängt an.
Ebenso das verwendete Hintergrund-Bild und ein Logo. Die Schriftart ist in der Regel standardmäßig unter Windows vorinstalliert.
Wir verwenden Delphi XE5. Wäre schön, wenn die Sourcen damit kompatibel wären. Nach Möglichkeit sollten keine kostenpflichtigen Zusatzkomponenten verwendet werden. Hier können wir uns aber gern abstimmen. Der Text soll explizit NICHT über Bitmap Fonts gerendert werden und nach Möglichkeit alle auf dem System installierten TTF und OTF supporten.
Wir würden, wenn es kostentechnisch sinnvoll erscheint, das Projekt gern erweitern. Perspektivisch benötigen wir alle möglichen 2D- und 3D-Formen. Rectangle, Circle, Cube und Sphere. Lichter, Farben und Texturen für diese Objekte wäre ebenfalls von nöten. Für die einzelnen Objekte oder die Gruppen, in denen sich die Objekte befinden können, würden wir auch gern optional die Projektion wählen können. Also ob Ortho oder Perspective. Das ist aber alles Zukunftsmusik.
Falls ein Open-Source-Renderer als Basis verwendet werden soll, wäre das ok für uns. Wir planen die Software nicht zu verkaufen.
Bitte von Angeboten mit Unity Abstand nehmen. Falls sich Delphi als nicht performant genug erweist, könnten auch andere Entwicklungsumgebungen in Betracht gezogen werden. Aber erstmal würden wir es gern mit Delphi XE5 probieren.
Bitte stellt Euch kurz per pn vor, mit einer kleinen Referenz, eventuellen Fragen und einer ungefähren Preisvorstellung.