Hi Niki
Ich danke dir für diesen sehr umfangreichen Beitrag! :mrgreen:
Ich habe da ein paar Gedanken und Bemerkungen dazu :-)
Das Thema interessiert und fasziniert mich auch schon länger, und ich habe auch immer wieder nach verschiedenen Lösungs-Ansätzen "geforscht".
Ich bin mit den Blending-Methoden über verschieden gross skalierten Masken recht gut vertraut, da ich sie immerwieder selbst einsetze. Aber totzdem Danke für diese gute und ausführliche Zusammenfassung :-)
Ich kann dir mal schildern wie ich in etwa vorgehe bei einem Shading-Network für Szenen mit Terrain. Wobei man hier wieder Anmerken muss, das das auf Echtzeitgrafik vielleicht nur bedingt übertragbar ist - aus gründen der Performance.
Grundsätzlich entwerfe ich Texturen immer in 4k also 4096 X 4096 / gelegentlich auch 8k oder 2k. 16k und und <2k in Ausnahmefällen. 16k ist dann aus Performance Gründen eher nicht mehr so lustig zu gestalten - und hier braucht man auch merklich mehr Ausdauer. Der Unterschied zwischen 2k und 4k ist für mich als Grafiker aber nicht so dramatisch. Wenn ich 10 Stunden an ner 2k Textur sitze und für 12 Studen arbeit das ganze in 4k bekommen kann, ist der Fall für mich klar: 4k.
Weniger als 2k ist für mich wenig sinnvoll. Der Arbeitsaufwand von 1k gegenüber 2k liegt etwa bei 90% - ich bin dann aber mit 1k im rendring doch drastisch eingeschränkt. Und gerade bei sehr gelungenen Arbeiten kann das dann ganz schön ärgern :-)
Bei Texturen für weitläufige Areale setze ich auf eine 4 Paltte vom selben Motiv. Z.b Wiese satt, grün. Davon gibt es 3 Variationen. Alle diese lassen sich aber aneinander ankacheln. Egal von welcher Seite, und welche Textur. Sie sind beliebig nahtlos aneinander kachelbar. Per Zufall wird jetzt die Fläche mit diesen Stücken durchsetzt.
So sieht man selbst aus sehr grosser Höhe keine Wiederholungsmuster.
Fürs Blending setze ich meist auf Fraktale und Prozedurale Texturen (ausser es muss custom sein), die sozusagen "Auflösungsfrei" sind. Meistens ist das bei mir im Shading-Network ein ganzer Tree von geblendeten Fraktalen und Clouds (in verschiedener skalierungen) die dann als Alpha-Make fungieren.
Was mich jetzt aber doch erstaunt, ist die grösse deiner Alpha-Layermap. 1Pixel per Vertex? Das wäre bei meinem Beispiel-Terrain nur ne 320x320 Pixel Map! Da hätte ich jetzt keine Hemmung ne 2048 Map einzusetzen.
Deine Beobachtung vom 50% Blending über grosse Fächen hinweg kann ich nur teilen. Das funktioniert nicht, weils halt nach genau nach blending ausschaut :->
Oftmal bringt aber alleine schon die änderung der Blending-Methode die gewünschte Wirkung. Multiply / Negativ Multiply / Lighten etc. - was dein Programm so hergibt mal testen. ein Mutiply Blending sollte eigentlich auch in RealTime absolut kein Problem sein. Ich glaube all diese Blending Modi sind mathematisch nicht wirklich komplex. Und gerade Modi die so eine art Cap haben, geben oftmals deutlich realistischere Ergebnisse als reine 50% Mix-Blendings.
In der Art meine ich das
Code: Alles auswählen
if (LayerA.Pixel.Helligkeit >= (50+LayerB.Pixel.Helligkeit))
{ LayerA.Pixel.Helligkeit + LayerB.Pixel.Helligkeit}
Was ich jetzt bei deinem Post nicht 100% verstehe...
Du hast also für jede Textur eine kleine Alpha-Masken Map (also nicht die globale Layer-Blend Map). Bei deinen schönen Medieval Steinplatten wären dann die Rillen in dieser Map weiss.
Nun kommt die globale Layer-Blend Map und besagt: Die Steinplatten müssen hier zu 50% mit dem Grass darunter geblendet werden.
Was nun transparent wird, ist lediglich die Rillen der Steinplatten-Map und nicht die ganze Map selbst? richtig?
Was passiert nun aber, wenn die globale Layer-Blend Map besagt, das zu 25% geblendet werden soll? oder zu 75%?
Was man bräuchte wäre eine solche Alpha Map mit weichen Graustufen-Verläufen.
Nun wird aber vor dem rendern aus dieser graustufen Map eine harte s/w gemacht. Mit genau dem Threshould aus der globalen Alpha-Map.
Ich sehe du bist da ja ziemlich tief drin und hast natürlich entsprechende Ansprüche an die Qualität. Zur Zeit drück mein Zeitplan wieder. Ich muss bis morgen Abend eine ganze Tempel Architektur UV-Layouten :-X Ich mach das ja eigentlich sehr gerne (was meine Grafiker-Kollegen immerwieder erstaunt :-D). Nur der Zeitdruck müsste so nicht sein :-X
Deshalb wird es wohl darauf hinauslaufen, das wir die Sache nach meinem Abschlussfilm neu beurteilen müssen (Mitte / Ende Juni). Aber Grundsätzlich fänd ich das schon enorm spannend. Und paar Hires Terrain Texturen zu gestalten ist ja auch nicht sooo das riesen Ding.
Gruss starcow
Edit:
Hier noch ein Beispiel von einer Terrain-Textur von mir.
Wie in diesem beispiel erstelle ich mir oftmals Templates, womit ich dann per Fraktale verschiedene Textur-Typen blenden kann. Das könnten z.b Blüten in einer Wieso sein. Oder so wie hier, ein etwas weniger bewachsener Untergrund.
Der Vorteil an so einem Template ist dann, das ich die Fraktale schnell ändern kann und so eine Textur erhalte, die zwar ähnlich aber nicht gleich ist. So krieg ich dann auch relativ schnell ne Palette von mehrer Themen hin.
Übrigens war hier auch die grosse Herausforderung den Übergang von "Bewachsen" zu "Unbewachsen" realistisch hinzubekommen. Weil dieser musste ja Prozedural bleiben (austauschbar).
Darum hab ich auch auf eine nachjustierung per Hand komplett verzichtet, um zu sehen wie weit man automatisiert kommt.
Die Hauptthemen (Wiesengrün, Erde) sind eine Mischung aus Fotographie, Pinselarbeit und Fraktalen.
(ist übrigens die Textur, die ich auf dem Terrain eben getestet habe...)
Und hier noch ein Auszug aus einer 16k Arbeit...
Das 16k Quadrat links oben, zeigt genau 1/4 der gesammten Textur...
Bei so grossen Texturen ist es immer wieder interessant zu sehen, wie stark sich der optische Eindruck, in der skalierung ändern kann.
