Bild in die tiefe ziehen
-
Vielleicht erklärst du nochmal genau was du vor hast. Geht es um das laden des Bildes, um den Alphakanal oder der "Streckung" in die Tiefe? Oder meinst du viellecht eine Skalierung der Textur selber? Letzteres würde schwierig, weil keine Funktion oder Ähnliches.
-
Jo danke.
Aber wir reden eigentlich von etwas trivialerem.Beispiel:
Habe ein Bild mit einem gefüllten kreis. Drumherum habe ich eine als Transparent deklarierte Farbe.
Nun habe ich dieses Bild ein zweites mal, nur etwas tiefer auf der othogonalen achse. Nun soll der Rand des Bildes A mit dem des Bildes B mittels Polygonen verbunden werden.
Ein paar leuchteffekte darauf feddich freu.
Nun soll das auch für komplexer gestaltete Bilder gehen.
Sei als beispiel das Siemens Logo genannt. Dieses würde dann wie eine 3D Schrifft aussehen.Sei gegrüßt
-
Ah, ich verstehe. Wenn es speziell um 3D-Schriftarten geht, dann kannste dir auch mal 3D-Fonts anschauen. Da bietet OpenGL sogar was an: wglUseFontOutlines( ). Damit kann man, soweit ich noch weiss, ganz schmusie die Tiefe von dem Font angeben.
EDIT:
Ich weiss nicht was dein Problem ist...
-
Das Tut von NeHe habe ich schon durch. Mir geht es dabei halt nicht einfach um Texure mapped fonts. Sondern um Bilder die in die 3 Achse gestreckt werden um so einen 3D eindruck zu bekommen.
Sei gegrüüßt und hab dank
-
Für wglUseFontOutline brauche ich einen vorhandenen Font,
Habe ich aber net!!! Sondern ein BILD!!! Dieses möchte ich Analog wie ein font nach hinten strecken. Transparenzfarbe soll beliebig sein.Hast Du eine Idee wie man das ohne viel schreiberei machen könnte??
gruß
-
Ich möchte dir ja nichts ausreden, aber das mit dem Bild ist die komplizierteste und schwierigste Idee. Du müsstest so oder so einen "Tracker" schreiben. Und alleine den für alle Schriftarten, niemals... Also meine einzige Idee wäre nun noch das mit dem Font-Gedöns oder halt eben Bump Mapping. Bump Mapping hat jedoch so ziemlich gar nichts mit 3D zu tun. Horizon Mapping gäbe es auch noch, was einem 3D-Text schon ziemlich nahe kommt, allerdings immernoch 2D ist. Egal für was du dich entscheidest, alles ist ziemlich aufwendig und kompliziert...
-
zeusosc schrieb:
Aber wir reden eigentlich von etwas trivialerem.
Das was du vorhast, ist richtig, richtig schwierig. Wenn du das hin bekommst, kannst du darüber fast schon ein Paper schreiben. Allein einen Algorithmus zu finden, der auf Basis einer beliebigen Silhouette eine Annäherung auf Basis von Geraden erzeugt, ist nicht einfach.
Was du machen kannst ist Pixelweise vorgehen. Jeder Pixel des Bildes wird dann durch ein winziges Rechteck im Raum dargestellt. Dann musst du "nur noch" die korrespondierenden Rechtecke zwischen den beiden Silhouetten finden und über Polygone Verbinden. Natürlich hast du dann das Problem, dass du in beiden Silhouetten unterschiedlich viele Pixel haben kannst, und dass die Seiten der Schrift nicht Glatt sind. Aber auch das lässt sich lösen, zum Beispiel indem jedes Randrechteck Polygone zu den Nachbarn zieht.
Je unterschiedlicher die beiden Formen sind, desto schwieriger ist übrigens das Problem. Ein "Morphing" zwischen beiden Bildern im 3D Raum stelle ich mir als eine ziemliche Herausforderung vor
-
otze schrieb:
Was du machen kannst ist Pixelweise vorgehen. Jeder Pixel des Bildes wird dann durch ein winziges Rechteck im Raum dargestellt. Dann musst du "nur noch" die korrespondierenden Rechtecke zwischen den beiden Silhouetten finden und über Polygone Verbinden.
Ein Problem bei deiner Pixel-Theorie ist, dass es ziemlich performancelastig wird. Wenn man wüsste, dass es sich bei jedem Bild um senkrechte und waagerechte Silhouetten handelt, könnte man eine Dimension größer denken und könnte sich so eventuell fummel-arbeit ersparen. Allerdings kannst du dann andere Fonts in die Tonne kloppen...
-
Inkscape kann Bilder vektorisieren, das dürfte doch eine ähnliche Technik sein. Die Kantenerkennung fällt weg, weil man den Alphawert hat, aber die Erstellung der Umrisse durch Linien/Kurven wäre das was man sich dort angucken kann.
-
Verstehe ich Dich falsch, oder würde dir eine Heightmap (http://en.wikipedia.org/wiki/Heightmap) reichen?
Hierbei kannst du schwarz als transparent festlegen und leicht einen 3D-Effekt erzielen.
-
du kannst soeinen 3d effekt erreichen indem zu das gewuenschte bild aus vielen layern aufbaust.
du zeichnest also nicht einmal, sondern zehn (hundert oder tausend, je nach qualitaetswunsch) mal den font, leicht versetzt (z.b. nach oben links) uebereinander.kommt drauf an was du erreichen willst, rotieren wirst do den text so nicht koennen, aber pseude 3d texte bekommt man so schon hin, wenn auch vielleicht nicht superschnell.
-
das wäre die einfachste lösung, jedesmal das bild ein stück versetzen, lässt sich ja leicht eine routine zimmern, wenn du die "kamera" bewegen willst.
solltest jedoch beachten, das du bei sehr hoher "layer" anzahl schnell an die grenzen deines rechners kommst.
-
Danke erst einmal für die antworten.
Ich werde mich mal am Wochenende daran versuchen einen bitmap parser dafür zu basteln.
Wenn ich was habe melde ich mich noch mal.
Seid gegrüßt
-
Hallo,
Ich habe mir einen editor geschrieben der mir eine maske einer bmp erzeugt, nachdem ich die transparente Farbe ausgewählt habe.
Nun kommt also der Schwierige Teil mit dem Parsen der Maske und dem entsprechenden Vektorisieren, dies, so dachte ich mir, würde ich nachher mit TRIANGLE_STRIP einfach anander knüppern.
Jetzt aber mal noch eine Frage:
Gibt es, (ich bin mir sicher es gibt eins), ein Standard Format für Vektorbilder??? Wenn ja, welche lib'S brauche ich??
Danke schon mal im voraus