Grundlagen Renderpipeline, Transparenz und Performance

Hier kann alles Allgemeine rund um Zusi 3 gefragt und beantwortet werden. Neuigkeiten zum Programm werden hier erscheinen.
Antworten
Nachricht
Autor
Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Grundlagen Renderpipeline, Transparenz und Performance

#1 Beitrag von Carsten Hölscher »

Es folgt ein kleiner Ausflug in die Details des Rendervorgangs (also wie bei DirectX das Modell auf den Bildschirm kommt), was für den 3D-Bastler als Hintergrundwissen empfehlenswert (wenn auch nicht zwingend erforderlich) ist.

Zunächst wird der Rendervorgang im Detail (nur soweit, wie es hier für das Verständnis nötig wird, bei genauer Betrahtung wird die Liste etwas länger) geschildert, im zweiten Schritt folgen die Konsequenzen, die sich für uns dadurch ergeben.

Renderpipeline
Es wird jedes Dreiecks eines Modells einzeln betrachtet, DirectX zeichnet also einfach alle Dreiecke in gegebener Reihenfolge auf den Bildschirm.

Das läßt sich grob in zwei Schritte unterteilen:

1.) Vertextransformation
a) Transformation der Eckpunkte (Vertices) aus den Modellkoordinaten an die globalen Koordinaten (Lage in der 3D-Welt).
b) Transformation der Vertices vom 3D auf die Bildschirmkoordinaten. Dabei wird für jeden Vertex neben der x-y-Lage auch ein Farbwert berechnet. Dieser richtet sich nach den Materialeigenschaften, dem Winkel zwischen Licht und Normalenvektor des Vertex' und weiteren Rendereinstellungen (später mehr dazu). Ein Dreieck besteht jetzt also aus drei Punkten auf der Bildschirmfläche mit je einem Farbwert. Gezeichnet wurde bisher aber noch nichts, die Werte sind nur intern gespeichert.

Jetzt muß die Fläche des Dreiecks ausgefüllt werden
2.) Pixeltransformation
a) Prüfen, ob das Dreieck nach vorne oder nach hinten zeigt; wenn es nach hinten ausgerichtet ist -> Abbruch des Vorgangs - sonst: Alle Pixel der Dreieckfläche der Reihe nach durchgehen
b) Farbwert des Pixels bestimmen, indem entsprechend je nach Abstand zwischen den Farbwerten der drei Vertices interpoliert wird und zusätzlich die entsprechenden Texturinformationen hinzugezogen werden
c) Prüfen, ob das Pixel evtl. wegen eines weiter vorne liegenden Polygons gar nicht mehr gezeichnet werden darf (das macht der z-Buffer, der für jedes Bildschirmpixel einen Entfernungswert vom Auge speichert. Wenn an der Position unseres Pixels schon ein weiter vorne liegendes Pixel gezeichnet wurde, steht also ein kleinerer Wert im z-Buffer als unser Pixel aufweist). Wenn Pixel weiter vorne vorhanden -> Abbruch des Vorgangs
d) Zeichnen des Pixels auf den Bildschirm, Setzen des Abstandswertes im z-Buffer (damit das Pixel nicht von später noch zu zeichnenden weiter hinten liegenden Dreiecken überschrieben wird).

Das wäre der ganz normale Vorgang für nicht transparente Dreiecke. Allererster Schritt, den nicht DirectX sondern Zusi selbst vornimmt, wäre noch die Überprüfung, ob ein Modell überhaupt im Blickbereich liegt. Wenn das nicht der Fall ist (liegt im Rücken o.ä.), wird das Modell gar nicht erst weiter betrachtet.

Vergleich zu Zusi 2
Zunächst mal ein kleiner Rückblick auf Zusi 2: Bei Zusi 2 ist die Performance eines Modells im wesentlichen von der Anzahl der Vertices abhängig. Rechenzeitkritisch sind dort also die Punkte unter 1.)
Das Ausfüllen einer einfarbigen, texturlosen Fläche unter Schritt 2.b. geht rasend schnell. Das ändert sich mit den Texturen; man muß also jetzt nicht nur die Anzahl der Vertices im Auge behalten, sondern auch die auf dem Bildschirm auszufüllende Fläche. Wo man unter Zusi 2 evtl. mehrere Flächen hintereinandergesetzt hat, um Polygonecken zu sparen, kann es unter Zusi 3 sinnvoll sein, ein paar Polygonecken zu spendieren, um auszufüllende Fläche zu sparen.

Volltransparenz
Flächen mit volltransparenten Bereichen sind recht schnell abgehandelt: Bei 2.c. wird festgestellt, daß das Pixel transparent ist und der Vorgang abgebrochen. Das Pixel braucht damit weniger Rechenzeit als ein zu zeichnendes Pixel, das bis 2.d. durchgerechnet wird (die Technik, die den Abbruch hier ermöglicht heißt alpa-testing und sollte von allen Zusi3-tauglichen Karten unterstützt werden). Große transparente Flächen sind aber trotzdem nicht sinnvoll, denn immerhin wird auch für die transparenten Flächen von 1.a bis 2.c gerechnet.

Halbtransparenz
Der undankbarste Fall: 2.d. muß hier noch erweitert werden. Es wird also bei 2.c. ein Farb- und ein Halbtransparenzwert ("alpha") ermittelt. Entsprechend der Stärke der Halbtransparenz muß das schon vorhandene Pixel mit dem neuen Pixel gemischt werden. Also Auslesen des Farbwerts vom Bildschirm, Berechnen eines neuen Mischfarbwertes, Zeichnen des neuen Farbwertes, Setzen des Abstandswertes im z-Buffer (damit das Pixel nicht von später noch zu zeichnenden weiter hinten liegenden Dreiecken überschrieben wird).
Wie man schnell erkennt, das performancemäßig aufwendigste von allen.

Und wer gut aufgepaßt hat, sieht gleich ein weiteres Problem: Wenn zum Zeitpunkt der Farbmischung noch gar nicht alle Dreiecke gezeichnet wurden, die hinter der halbtransparenten Fläche zu sehen sein sollen, dann hat man ein Problem. Denn ein später gezeichnetes und weiter hinten liegendes Dreieck wird schon bei 2.c scheitern und damit keinen Einfluß mehr auf das Ergebnis haben.
Es gibt nur eine Maßnahme dagegen: Die Polygone müssen von hinten nach vorne sortiert werden.

Zusi macht darum folgendes:
- Das Terrain, das ja nicht transparent ist, wird zuerst von vorne nach hinten sortiert und gezeichnet. Das hat den Vorteil, daß relativ viele Punkte schon bei 2.c abbrechen können. Wenn man die Berge hingegen von hinten nach vorne zeichnen würde, würden fast alle Pixel bis 2.d durchlaufen, nur um dann doch später nch von den weiter vorne liegenden Bergen überschrieben zu werden.
- Die anderen Objekte hingegen werden von hinten nach vorne sortiert und gezeichnet. Damit ist bis auf (hoffentlich wenige) sehr spezielle Fälle sichergestellt, daß beim Zeichnen von halbtransparenten Flächen bereits alle dahinter liegenden Pixel gezeichnet wurden.

Wie es aussieht, wenn falsch sortiert wird, sieht man hier:
Bild
Da wurden zuerst die Drehgestellte gezeichnet. Die halbtransparenten Flächen wurden mit dem Himmel vermischt und im z-Buffer gegen Überschreiben durch weiter hinten liegende Poylgone gesichert. Dann wurde das Gleis gezeichnet, wobei die hinter den Drehgestellpolygonen liegenden Pixel wg. z-Buffer-Test bei 2.c nicht weiter verfolgt wurden. Fehler im Betrachter o.ä. (noch nicht untersucht), zumindest nicht vom Anwender zu beeinflussen.

Modelle mit Inneneinrichtung: Hier muß ja auch noch innerhalb des Modells die korrekte Reihenfolge sichergestellt werden. Das macht man über mehrere Meshes, die von innen nach außen gezeichnet werden. Die Reihenfolge der Meshes kann man in den ls3-Einstellungen der Datei festlegen. Ich werde morgen mal ein Beispiel mit Bildern dazu folgen lassen.

Carsten

Benutzeravatar
Michael_Poschmann
Beiträge: 19881
Registriert: 05.11.2001 15:11:18
Aktuelle Projekte: Modul Menden (Sauerland)
Wohnort: Str.Km "1,6" der Oberen Ruhrtalbahn (DB-Str. 2550)

#2 Beitrag von Michael_Poschmann »

Moin Carsten,

danke für den Aufklärungsunterricht, habe wieder was gelernt. :)
Frage: Wie wird verfahren, wenn die Sortierreihenfolge nicht eindeutig ist? Konstruiertes Extrembeispiel: Berg oder Stützmauer, im Unendlichen beginnend und bis kurz vor den Betrachter reichend, ein weiteres Objekt (z.B. Baum) in endlichem Abstand vor dem Betrachter positioniert.

Gibt es in diesem Fall einen "Referenzpunkt" der Objekte (z.B. die Einbaukoordinaten)? Dann wären verknüpfte Objekte schon mal abhandelbar, nur der Bastler hätte den "Nullpunkt" ggf. clever zu wählen.

Theoretisierende Grüße
Michael
Zuletzt geändert von Michael_Poschmann am 13.03.2006 09:32:13, insgesamt 2-mal geändert.

Jörg_S
Beiträge: 1204
Registriert: 07.11.2001 18:45:28
Aktuelle Projekte: Signal- und Fahrzeugbau für Z3
Nachbau der KBS357,590,600
Wohnort: Ilfeld

#3 Beitrag von Jörg_S »

Hallo

@ Carsten

Die falsche Sortierung wie auf dem Bild resultierte aus einer alten Version des Modellbetrachters.
Danke auch für die theoretische Darstellung des Rendervorganges, damit beschäftigt man sich ja nicht zwangsläufig beim Modellbau.

Jörg
Gruß Jörg

Signal-& Fahrzeugbau Ilfeld

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#4 Beitrag von Carsten Hölscher »

Teil 2 zum Thema Halbtransparenz.

Am Beispiel eines aus dem MSTS importierten Fahrzeugs (danke an den Autor) soll das Problem eines mit halbtransparenten Flächen ausgestatteten Modells gezeigt werden.
Das Modell wird zunächst aus dem x-Format in Zusi-eigene Format importiert. Dazu geht man im frisch geöffneten Modellbetrachter auf "ls3-Datei bearbeiten" -> x-Import.
Beim Import werden alles Meshes auf "Ohne Transparenz" gesetzt (beim MSTS werden solche Infos über die codierten Gruppennamen des Meshes mitgeteilt, diese wertet Zusi bisher aber nicht aus). Das Modell ist also zunächst mit undurchsichtigen Fenstern ausgestattet.
Jetzt müssen die Meshes angeklickt werden, die transparent erscheinen sollen. Unter Mesh-Eigenschaften erscheint folgener Dialog:

Bild

Unten links kann man typische Fälle als Vorauswahl anklicken, hier also "Standard, eine Textur, Halbtransparenz" und alle Häkchen und Auswahlboxen stellen sich korrekt ein.

Wenn man das für alle Fenster gemacht hat, zeigt sich z.B. folgendes:

Bild

Die Reihenfolge des Meshes ist nicht korrekt. Die Scheiben werden also schon vor der Innenreinrichtung gezeichnet, so daß diese dann nicht mehr dargestellt wird. (Hinweis zum verständnis: Bei Volltransparenz würde dieser Effekt nicht auftreten, da dort die Reihenfolge egal ist).

Es müssen jetzt die Meshes entsprechend sortiert werden. Dazu wird der Dialog "ls3-Datei bearbeiten" aufgerufen (dabei dürfen keine Meshes markiert sein, damit die richtige Datei erwischt wird):

Bild

Unter Meshes sind alles Meshes des Modells aufgelistet. Man muß jetzt lediglich die Außenscheiben ans Ende der Liste schieben, damit diese ganz am Ende (zumindest aber nach der Inneneinrichtung) gezeichnet werden.

Und schon sieht das ganze deutlich freundlicher aus:

Bild

Zu guter Letzt noch der Extremfall, von dem ich aber für den Modellbau auf jeden Fall abraten möchte. Zur Erklärung des Prinzips ist er aber gut geeignet. Hier wurden auch noch die Trennwände zwischen Abteil und Gang sowieso die Abteilscheiben auch von innen halbtransparent angelegt. Für die korrekte Darstellung also eine besondere Herausforderung (mehrere Halbtransparenzen gestaffelt).
Dazu müssen alle halbtransparenten Meshes von innen nach außen sortiert werden. Hier also zunächst die Innenseite der Außenfenster, dann die Abteiltüren, dann die Außenseite der Außenfenster gezeichnet werden. Dann spielt es keine Rolle mehr, ob man von außen nach innen oder von innen nach außen oder durch den ganze Wagen durchschaut. Hier ist das mittlere Abteil entsprechend sortiert worden. Man erahnt den blauen Himmel ganz außen nur noch, da durch 3 halbtransparente Scheiben durchgeschaut wird. dazwischen ist die Inneneinrichtung zu sehen.


Bild

Ich halte es auch für ein LOD 0-Modell für völlig ausreichend, die Außenscheiben von außen halbtransparent zu gestalten. Ob Innenscheiben volltransparent oder halbtransparent sind, ist von außen praktisch nicht zu unterscheiden.

Carsten

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#5 Beitrag von Carsten Hölscher »

Frage: Wie wird verfahren, wenn die Sortierreihenfolge nicht eindeutig ist? Konstruiertes Extrembeispiel: Berg oder Stützmauer, im Unendlichen beginnend und bis kurz vor den Betrachter reichend, ein weiteres Objekt (z.B. Baum) in endlichem Abstand vor dem Betrachter positioniert.
Es gibt Fälle, die sich nicht lösen lassen. Einfachstes Beispiel. Ein Baum der durch 2 "ineinander gesteckte" Polygone angenähert wird. Das geht nur mit Volltransparenz (was auch okay ist). Wenn man es mit Halbtransparenz lösen wollte, liegt jedes Polygon jeweils gleichzeitig vor und hinter dem anderen, also keine korrekte Reihenfolge möglich. Berg und Stützmauer sind aber Teile des Terrains und damit immer vor dem Baum dran (s. oben), also Dein Beispiel ist unkritisch.

Carsten

Benutzeravatar
Christian Gründler
Beiträge: 2210
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

#6 Beitrag von Christian Gründler »

Carsten Hölscher hat geschrieben:Und wer gut aufgepaßt hat, sieht gleich ein weiteres Problem: Wenn zum Zeitpunkt der Farbmischung noch gar nicht alle Dreiecke gezeichnet wurden, die hinter der halbtransparenten Fläche zu sehen sein sollen, dann hat man ein Problem. Denn ein später gezeichnetes und weiter hinten liegendes Dreieck wird schon bei 2.c scheitern und damit keinen Einfluß mehr auf das Ergebnis haben.
Es gibt nur eine Maßnahme dagegen: Die Polygone müssen von hinten nach vorne sortiert werden.
Hallo Carsten,

wenn ich alles recht verstanden habe, könnte man sich durch Verzicht auf Halbtransparenz einige Rechenarbeit sparen, da dann das Vorsortieren der Polygone entfallen kann.

Frage: ist daran gedacht, evtl. die Halbtransparenz abschalten zu können? Denn ich sehe die Gefahr, daß relativ wenige halbtransparente Flächen die gesamte Simulation ausbremsen könnten.

M.f.G. Christian (wie immer der Bedenkenträger)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#7 Beitrag von Carsten Hölscher »

man steuert das ja über die entsprechenden Einstellungen des Meshs. Siehe 1. Bild der VS08-Serie. Dort kann man unten links auch "Standard, eine Textur" wählen, dann wird nichts transparent gezeichnet.
Das Sortieren muß man trotzdem und immer, da ja auch nicht-transparente Objekte hinter halbtransparenten liegen müssen.
Das Sortieren ist aber nicht so viel Aufwand. Die Entfernug vom Auge wird sowieso für jedes Objekt berechnet. Für die Sortierung habe eine sehr flotte Methode implementiert. Mir hatte davor auch immer etwas gegraut, aber es sah dann am Ende doch eher unkritisch aus.

Edit: Durch das Sortieren des Terrains spart man ja auch wieder deutlich Rechenzeit, also unter dem Strich ist Sortieren wohl sogar vorteilhaft für die Performance, wird übrigens auch in entsprechenden Fachbüchern so gesehen.

Carsten
Zuletzt geändert von Carsten Hölscher am 13.03.2006 19:02:47, insgesamt 1-mal geändert.

shangway
Beiträge: 37
Registriert: 07.05.2003 23:28:11

Re: Grundlagen Renderpipeline, Transparenz und Performance

#8 Beitrag von shangway »

Carsten Hölscher hat geschrieben:
Es gibt nur eine Maßnahme dagegen: Die Polygone müssen von hinten nach vorne sortiert werden.
Waere es denn nicht moeglich, alle Polygone von vorne nach hinten zu sortieren und auch so zu zeichnen. Das wuerde eine Menge Rechenzeit sparen, da viele der Objekte, die zum Beispiel durch Vordergrund-Objekte verdeckt werden erst gar nicht gezeichnet oder gerendert werden muessen.
Beispiel: Ein Zug faehrt in einen Bahnhof ein in dem auf dem Nebengleis ein andere steht. Dieser Zug versperrt die Sicht auf saemtliche dahinter liegenden Objekte, die nach der Von-hinten-nach-vorne-Mehode aber alle gezeichnet und berechnet werden nur um dann im letzten Schritt vom Nachbarzug ueberdeckt zu werden.
Wenn ich das richtig verstanden habe, ist das einzige Problem hierbei die Halbtransparenz. Die volltransparenten Pixel werden einfach ignoriert.
Dazu haette ich einen Loesungsvorschlag: Zunaechst zeichnet man die 3D Landschaft wie vorgeschlagen (und genauso wie das Terrain) von vorne nach hinten und behandelt die halbtransparenten Dreiecke wie volltransparente, d.h. man zeichnet sie einfach nicht. Wenn das komplette Bild gerendert ist, "korrigiert" man in einem zweiten Durchgang dann die Polygone, die einen Alpha-Wert haben. Alle hinter einer halbtransparenten Flaeche liegende Pixel sind zu diesem Zeitpunkt ja schon korrekt dargestellt. Man braucht also nur noch den Farbwert fuer diese Pixel zu korrigieren. Der zweite Durchgang duerfte auch kaum etwas am Performancegewinn aendern, hat warscheinlich ueberhaupt keinen negativen Einfluss, da die Pixel ja im ersten Durchgang sowieso ignoriert werden.
Any comments?

Eine andere Frage: Ist der Fuehrerstand denn auch ein 3D Objekt in diesem Sinne, oder anders gefragt, werden die Objekte, die durch den Fuehrerstand verdeckt werden vor dem zeichnen schon aussortiert? Das wuerde auch einen erheblichen Einfluss auf die Performance haben. Bei manchen Fuehrerstaenden ist ja (leider) fast 4/5 der Landschaft durch die statische 2D Grafik verdeckt.

--- shangway

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#9 Beitrag von Carsten Hölscher »

der Führerstand wird ja sowieso nur im Bereich des Fensters gezeichnet. Es kommen also nur die Bereiche in Frage, in denen das Fenster vom Rechteck abweicht. Bei Zusi 2.4 kommt der Führerstand am Ende, man könnte ihn aber auch vorher zeichnen und den z-Buffer entsprechend belegen. Hab's noch nicht drin, aber erinnere mich wieder, daß das schonmal irgendwo empfohlen wurde. ;D

Das Sortieren der halbtransparenten Objekte könnte man so machen. Ich habe das zunächst noch nicht so gemacht, da der Verwaltungsaufwand schon deutlich steigt, wenn man die einzelnen Meshes der Dateien auseinandersortieren will. Ob sich das wirklich lohnt, werde ich evtl. mal bei Gelegenheit testen. Ich gehe eher davon aus, daß es sich nicht lohnt - aber nur so ein Gefühl. Hängt natürlich auch stark davon ab, wie die Modelle gebaut werden.

Carsten

Benutzeravatar
Hans Daxer
Beiträge: 739
Registriert: 05.03.2003 17:34:42
Aktuelle Projekte: Noch viele Jahre als gesunder Pensionär den Finanzminister ärgern!
Wohnort: Marquartstein, nächster sog. Bahnhof: Übersee a. Chiemsee

#10 Beitrag von Hans Daxer »

Jetzt hab´ich alles gelesen. Und, wie sagte schon unser bayerischer Querphilosoph Karl Valentin: "So einfach, gell. Und man kann sich´s doch nicht merken!"

Mit Respekt (und das ist wirklich jetzt einmal kein Schmäh)!

Hans
Führer und Heizer sollten es sich zur Regel machen, auf ihren Fahrten gut und reichlich zu essen (Der Locomotivführer, III. Abtheilung, 1899)

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#11 Beitrag von Carsten Hölscher »

ist mir schon klar, daß das Thema bei "unvorbereiteter Einnahme" so ein gewisses Stirnrunzeln verursachen kann. Darum steht auch gleich im erste Satz:
Es folgt ein kleiner Ausflug in die Details des Rendervorgangs (also wie bei DirectX das Modell auf den Bildschirm kommt), was für den 3D-Bastler als Hintergrundwissen empfehlenswert (wenn auch nicht zwingend erforderlich) ist.
Wenn man sich etwas damit befaßt, ist es nach einiger Zeit alles absolut selbstverständlich. Solche Beiträge richten sich also nur an Leute, die sich damit befassen möchten.
Gerade diese grundsätzlichen Dinge werden übrigens auch in vielen Büchern oft unterschlagen (und ich hätte mich hier und da mal gefreut, wenn solche Beiträge bei der Einarbeitung zur Verfügung gestanden hätten)

Carsten
Zuletzt geändert von Carsten Hölscher am 03.04.2006 16:40:34, insgesamt 1-mal geändert.

Benutzeravatar
Roland Ziegler
Beiträge: 5508
Registriert: 04.11.2001 22:09:26
Wohnort: 32U 0294406 5629020
Kontaktdaten:

#12 Beitrag von Roland Ziegler »

Seit es nun neuerdings Vertex- und Pixelshader gibt, sind auch die Tutorial- und Buchautoren stärker gehalten, die fundamentalen Zusammenhänge etwas ausführlicher zu erläutern, denn sonst rafft man das Prinzip der Shader schon rein gar nicht.

Aber ich gebe Carsten recht, manche Grundlagen kommen oft nur sehr kurz vor, und erleichtern in solcher Kürze das Verständnis nicht unbedingt. Selbst wenn man es nur als SW-Entwickler wirklich verinnerlichen wird, auch als 3D-Modellbauer ist man manchmal schon recht nahe am Prozess dran, so dass es sicher nicht schadet zu wissen, wie das beim Rendern abläuft.

Als Zusi-Tf hingegen wird man auch glücklich werden können, ohne den Unterschied zwischen Alpha-Testing und Alpha-Blending zu kennen.

Benutzeravatar
Michael_Poschmann
Beiträge: 19881
Registriert: 05.11.2001 15:11:18
Aktuelle Projekte: Modul Menden (Sauerland)
Wohnort: Str.Km "1,6" der Oberen Ruhrtalbahn (DB-Str. 2550)

#13 Beitrag von Michael_Poschmann »

Roland Ziegler hat geschrieben:Als Zusi-Tf hingegen wird man auch glücklich werden können, ohne den Unterschied zwischen Alpha-Testing und Alpha-Blending zu kennen.
Puh, Glück gehabt. :]

Michael
der sich um die Materie immer mal wieder herumschleicht wie die Katze um den heißen Dingenskirch.

Christopher Spies
Beiträge: 775
Registriert: 26.01.2005 16:10:18
Wohnort: Darmstadt

#14 Beitrag von Christopher Spies »

Roland Ziegler hat geschrieben:Als Zusi-Tf hingegen wird man auch glücklich werden können, ohne den Unterschied zwischen Alpha-Testing und Alpha-Blending zu kennen.
Als Objektbauer sollte man den Unterschied aber schon kennen, zumindest wenn man Texturen erstellen will.

Benutzeravatar
Steven G.
Beiträge: 478
Registriert: 13.03.2004 05:59:18
Aktuelle Projekte: Loks für Zusi 3
Wohnort: Melbourne, Australien

#15 Beitrag von Steven G. »

Ich verwende eine DXT1 Textur und Alpha-Testing (kein Alpha-Blending).

Ich habe versucht, die Einstellung: Alpha-REF-Wert [0..255] zu verwenden, um einige durchsichtige Rand-Wirkungen zu kontrollieren.


Bild


Gibt es irgendwelche Probleme mit dem Verwenden dieses Parameters? Wird das eine bedeutende nachteilige Wirkung auf die Leistung (verglichen mit dem 'Standard, eine Textur, Volltransparenz') haben?

MfG
Steven.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#16 Beitrag von Carsten Hölscher »

Wenn Du sowas öfter brauchst, dann würde ich noch eine neue Kategorie einführen. Aber sieht man ohne alphablending überhaupt Auswirkungen bei Änderungen des Wertes?

Carsten

Benutzeravatar
Steven G.
Beiträge: 478
Registriert: 13.03.2004 05:59:18
Aktuelle Projekte: Loks für Zusi 3
Wohnort: Melbourne, Australien

#17 Beitrag von Steven G. »

Standard, eine Textur, Volltransparenz. (Alpha-REF-Wert = 1)

Bild

Individuell: Alpha-REF-Wert = 100

Bild

Individuell: Alpha-REF-Wert = 255

Bild


MfG
Steven.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#18 Beitrag von Carsten Hölscher »

ah. darum geht's. Da kannst Du auch dxt3-Format nehmen und die transparenten Bereiche mit der passenden Farbe füllen - hier rot. Ich kann aber auch gerne noch einen anderen Ref-Wert einführen. Welcher soll es sein?

Carsten

Benutzeravatar
Steven G.
Beiträge: 478
Registriert: 13.03.2004 05:59:18
Aktuelle Projekte: Loks für Zusi 3
Wohnort: Melbourne, Australien

#19 Beitrag von Steven G. »

Für einen neuen Ref-Wert vielleicht 100?

MfG
Steven.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

#20 Beitrag von Carsten Hölscher »

jetzt wollte ich das für die neue Version gerade auf 100 ändern - und es steht schon auf 100. Mh - ich hoffe mal, ich hatte es schon geändert und dann wieder vergessen :O Oder es ist sonst irgendwas schiefgelaufen...

Carsten

Antworten