Hallo,
ich habe hier einen potentiellen Auftrag. Dabei geht es um die dynamische Erzeugung von Bildern. Auf den Bildern sollen Glastüren (es geht um einen Türenhersteller) abgebildet werden. Der Nutzer soll auf der Website die Möglichkeit haben verschiedene Merkmale (Höhe, Breite, Farbe des Rahmens, Art des Glases) auszuwählen. Anhand dieser Merkmale soll nun ein entsprechendes Bild erzeugt werden.
Im Prinzip ist dies auch umsetzbar. Eine Beispielanwendung habe ich schon erstellt. Die Ergebnisgrafiken sehen brauchbar aus. Nun sind sie dem Kunden jedoch nicht realistisch genug.
Ist es überhaupt möglich absolut fotorealistische Abbildungen mit PHP dynamisch zu erzeugen? Ich bezweifle es, aber vielleicht hat ja hier jemand soetwas schon gemacht.
Ich beschreibe erst einmal wie mein derzeitiges Vorgehen ist. Als Hintergrund habe ich einen Raum mit einer Wand in der Frontalansicht. Die einzelnen Türrahmen sind in einzelnen Bilddateien hinterlegt. Um die Rahmenfarbe und das Glas einzubindne habe ich hier zwei Farbflächen gesetzt. Farbe 1 wird später durch die Rahmenfarbe ersetzt, Farbe 2 durch das Glas.
Als erstes öffne ich ein Bild mit einem Hintergrund (es ist ja eine durchsichtige Glastür) in der Grösse des Rahmens.
Nun erstelle ich ein neues Image-Objekt, öffne eine Grafik die die Glasscheibe enthält und kachele diese in das neue Bild. Dieses Dummy-Bild lege ich nun mit 15%iger Deckkraft über das Hintergrundbild.
Nun passiert eigentlich nochmal das gleiche mit einer Grafik, die Schatten und Reflexionen enthält. Die Glasscheibe ist fertig.
Jetzt öffne ich den Türrahmen und setze dort die Farbe, die für die Glasscheibe vorgesehen war, auf transparent. Dieser Rahmen wird nun auf die fertige Glasscheibe kopiert. Nun wird die Farbe, die für den Rahmen vorgesehen war auf transparent gesetzt.
Es wird ein neues Bild erstellt und mit der gewünschten Rahmenfarbe gefüllt. Wie bei der Glasscheibe zuvor wird eine Schattengrafik mit 15%iger Deckkraft drübergelegt.
Die Grafik die die Glasscheibe und den transparenten Dummy-Rahmen enthält wird nun über dieses Bild gelegt. Die Tür ist fertig.
Zum Schluss wird noch die Tür auf den Hintergrund (die Wand) kopiert.
Das war mein Lösungsansatz. Das Ergebniss könnt Ihr hier sehen.
Bis auf das Glas und die Schatten bin ich auch recht zufrieden. Nur wie bekommt man einen realistischer wirkenden Schatten/Reflexionen auf der Scheibe zu stande?
Das nächste Problem ist, dass der Kunde nun keine Frontalansicht mehr wünscht. Es kommen also Schrägen hinzu und mein Konzept greift dann nicht mehr. An den Übergängen zwischen Rahmen/Wand und Rahmen/Glas wären harte Abstufungen zu sehen.
Wie soll man das lösen? Ein Blur-Effekt dauert zu lange für den Live-Einsatz. Und selbst wenn ich auf etwas schnelleres wie ImageMagick zurückgreifen würde (was ich eigentlich vermeiden wollte. Derzeit funktioniert es mit purem GD) wie soll ich den Blur-Effekt auf die Problemstellen begrenzen?
Ich bin ziemlich Ratlos und würde sagen dass es mit Schrägen auf diese Weise zumindest nicht machbar ist.
Aber wie sonst? Hat jemand eine Idee?
ich habe hier einen potentiellen Auftrag. Dabei geht es um die dynamische Erzeugung von Bildern. Auf den Bildern sollen Glastüren (es geht um einen Türenhersteller) abgebildet werden. Der Nutzer soll auf der Website die Möglichkeit haben verschiedene Merkmale (Höhe, Breite, Farbe des Rahmens, Art des Glases) auszuwählen. Anhand dieser Merkmale soll nun ein entsprechendes Bild erzeugt werden.
Im Prinzip ist dies auch umsetzbar. Eine Beispielanwendung habe ich schon erstellt. Die Ergebnisgrafiken sehen brauchbar aus. Nun sind sie dem Kunden jedoch nicht realistisch genug.
Ist es überhaupt möglich absolut fotorealistische Abbildungen mit PHP dynamisch zu erzeugen? Ich bezweifle es, aber vielleicht hat ja hier jemand soetwas schon gemacht.
Ich beschreibe erst einmal wie mein derzeitiges Vorgehen ist. Als Hintergrund habe ich einen Raum mit einer Wand in der Frontalansicht. Die einzelnen Türrahmen sind in einzelnen Bilddateien hinterlegt. Um die Rahmenfarbe und das Glas einzubindne habe ich hier zwei Farbflächen gesetzt. Farbe 1 wird später durch die Rahmenfarbe ersetzt, Farbe 2 durch das Glas.
Als erstes öffne ich ein Bild mit einem Hintergrund (es ist ja eine durchsichtige Glastür) in der Grösse des Rahmens.
Nun erstelle ich ein neues Image-Objekt, öffne eine Grafik die die Glasscheibe enthält und kachele diese in das neue Bild. Dieses Dummy-Bild lege ich nun mit 15%iger Deckkraft über das Hintergrundbild.
Nun passiert eigentlich nochmal das gleiche mit einer Grafik, die Schatten und Reflexionen enthält. Die Glasscheibe ist fertig.
Jetzt öffne ich den Türrahmen und setze dort die Farbe, die für die Glasscheibe vorgesehen war, auf transparent. Dieser Rahmen wird nun auf die fertige Glasscheibe kopiert. Nun wird die Farbe, die für den Rahmen vorgesehen war auf transparent gesetzt.
Es wird ein neues Bild erstellt und mit der gewünschten Rahmenfarbe gefüllt. Wie bei der Glasscheibe zuvor wird eine Schattengrafik mit 15%iger Deckkraft drübergelegt.
Die Grafik die die Glasscheibe und den transparenten Dummy-Rahmen enthält wird nun über dieses Bild gelegt. Die Tür ist fertig.
Zum Schluss wird noch die Tür auf den Hintergrund (die Wand) kopiert.
Das war mein Lösungsansatz. Das Ergebniss könnt Ihr hier sehen.
Bis auf das Glas und die Schatten bin ich auch recht zufrieden. Nur wie bekommt man einen realistischer wirkenden Schatten/Reflexionen auf der Scheibe zu stande?
Das nächste Problem ist, dass der Kunde nun keine Frontalansicht mehr wünscht. Es kommen also Schrägen hinzu und mein Konzept greift dann nicht mehr. An den Übergängen zwischen Rahmen/Wand und Rahmen/Glas wären harte Abstufungen zu sehen.
Wie soll man das lösen? Ein Blur-Effekt dauert zu lange für den Live-Einsatz. Und selbst wenn ich auf etwas schnelleres wie ImageMagick zurückgreifen würde (was ich eigentlich vermeiden wollte. Derzeit funktioniert es mit purem GD) wie soll ich den Blur-Effekt auf die Problemstellen begrenzen?
Ich bin ziemlich Ratlos und würde sagen dass es mit Schrägen auf diese Weise zumindest nicht machbar ist.
Aber wie sonst? Hat jemand eine Idee?
Kommentar