Deutsches Simutransforum

Normale Version: Semitransperenz in Simutrans?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Gestern erstellte ich für das 192Comic-Pak mein erstes Haus. Da es Glasflächen enthält habe ich den Wunsch einen PNG-Alphakannal zu verwenden. Doch leider kommt schon bei MakeObj die Meldung "WARNING: ignoring alpha channel" (-> Alphakannal igoriert).

Ich denke das viele Paksets mit Hilfe eines Transperenzkannal, Glasflächen und andere Gegenstände besser darstellen könnten.

Ganz besonders die Paksets die Gerendert werden, hätten es sicher leicher!


Für einfache Arbeiten sollte weiterhin die Spezialfarbe zur Verfügung stehen, doch bei bedarf müsste der Transperenzkannal funktionieren.

Ich würde mich sehr freuen, wenn in naher Zukunft der Alphakannal funktionieren würde. Smile
Soviel ich weiß, kann Simutrans Alphakanäle nicht korrekt darstellen. Es ist beim Erstellen einer Grafik fürs Spiel sogar sehr wichtig, dafür zu sorgen, dass der Alphakanal zuvor entfernt wurden, da es sonst zu Problemen kommt.

Glaube, ohne sehr umfangreiche und umständliche Änderungen am Code wird sich daran auch nichts ändern lassen, wobei ich nicht mal weiß, ob das überhaupt möglich ist. Insofern wirst du darauf in Zukunft wahrscheinlich verzichten müssen.
Also der Alphakannal wird einfach ignoriert. Möglich müsste das auf jeden Fall sein, sowohl OpenGL als auch GDI+ unterstützen Halbtransperenz.

Ob es schwierig einzubauen ist weiß ich nicht.
Ich fürchte, dass es tatsächlich sehr kompliziert oder praktisch nicht möglich ist, sonst hätten wir die Möglichkeit schon längst. Denn den Wunsch gibt es schon sehr lange. Schön wäre es natürlich schon, mit Transparenz arbeiten zu können...

WeisserHelge

Die farbe "e7ffff" ist die Transperenz
Du solltest die Farbe nehmen die wird dann im spiel nicht angezeigt(transperent)
Der alphakanal sollte nicht in Bilder vorkommen!
Bei GIMP kann man ihn leicht entfernen(rechtsklick auf die Ebene und alphakanal entfernen) Big Grin
Deine Antwort geht am Thema bzw. der Frage vorbei Wink
Simutrans rechnet intern mit 15 bit Farbetiefe. Diese werden je nach Display auf 8 bis 32 bit von den jeweiligen Darstellungsroutinen SDL/GDI/Allegro hochgerendert. Als diese aktuell waren, gab es sowas wie Transparenzunterstützung vom OS schlicht nicht. (Die ersten Simutransversionen liefen auf 8 Bit X-Windows und DOS.)

Ein Umbau hier würde ziemlich viele Probleme aufwerfen (zum Beispiel mit der Nachtdunkelung) und die Darstellen locker um den Faktor 4 (bzw. noch mehr mit TRansparent) verlangsamen.
SDL basiert meines Wissens auf OpenGL und in OpenGL gibt es Fragmentshader/Pixelshader die die Nachtverdunkelung automatisch auf der Grafikkarte von stadten gehen lassen könnten.

Da OpenGL\SDL auf so gut wie jeder Platform läuft, wäre es vermutlich kein Problem wenn die anderen Versionen (GDI, Allegro, usw.) auf dauer nicht mehr verfügbar sind.
SDL beruht mitnichten auf OpenGL; SDL kann openGL verwenden; allerdings läuft auch SDL auf der Kommandozeile mit dem Framebuffer, also selbst ohne X-Windows(!) Es gab mal jemanden, dessen Computer "etwas" schwachbrünstig war, der hat Simutrans immer so benutzt.
SDL basiert nicht auf OpenGL?

Obwohl sogar in Wikipdia etwas darüber steht:
Zitat:
  • SDL, kann ebenfalls plattformunabhängig einen OpenGL-Kontext erzeugen.
  • SFML, nutzt genauso plattformunabhängig einen OpenGL-Rendering-Kontext zum Zeichnen in Fenster.

Vieleicht wäre es Zeit, auf OpenGL umzusteigen. Ich denke, das OpenGL entgegensatz zu GDI und Allegro an Bedeutung gewinnen wird.
GDI nutzt angeblich auch kaum die Grafikkarte. (GDI soll ja auch unglaublich schnell sein... Wink )
Für alle die sich Simutrans 3D wünschen(ich gehöre nicht dazu), wäre das sicher ein erster Schritt.
Seiten: 1 2