Home Tutorials TG2 Tutorials Populationsbegrenzung
Populationen begrenzen und Renderzeit sparen


Begrenzung von Objekt-Populationen in Terragen2

Um die Zahl der zu berechnenden Objekte zu optimieren und damit Renderzeit und Speicherbedarf des Projektes in Grenzen zu halten, sollten Objekt-Populationen auf den im Endbild sichtbaren Bereich begrenzt werden. Auch Objekte die im Endbild gar nicht zu sehen sind, weil sie etwa hinter der Kamera stehen, werden berechnet und kosten Ressourcen. Leider ist das durch den im Shader definierbaren Bereich nicht immer optimal möglich. Auch kann man den so definierten Bereich nicht drehen. Um zu vermeiden, dass Populationen im nicht sichtbaren Bereich des Terrains übermässig erzeugt und berechnet werden, kann man sich mit einem kleinen Trick helfen.

Dazu benötigen wir ein Imagemap-Shader, in den wir ein Bild laden, dass komplett mit dem RGB-Wert 255,255,255, also weisser Farbe, gefüllt ist. Mit Adobe Photoshop lässt sich ein solches Bild im Handumdrehen erstellen. Weiterhin benötigen wir einen Distance-Shader, der uns den Kamerausschnitt liefern wird.

Aber nun einzeln Schritt für Schritt: (am Ende des Artikels findet Ihr die TGD und die Blank_weiss.jpg als Download)

Wir erstellen uns in diesem beispiel eine Population mit den TG-internen "Grass Clump"



mit folgenden Einstellungen:



Als Density-Shader erstellen wir uns den Imagemap Shader und laden uns das weisse Bild rein. Hier seht Ihr die Einstellungen:



An dessen Blendeingang kommt nun der Distance Shader. Diese Kombination bewirkt, dass nur der gewählte Kameraausschnitt maskiert wird. Hier die Einstellungen:



In der Shader-Vorschau sieht das jetzt so aus:



und so in der Node-Ansicht:



Diese Einstellung des Distance-Shaders bewirkt, dass das weisse Image bis zum Wert von 1000m langsam "ausgeblendet" wird. Mit dieser Maske wird auch unsere Population begrenzt.

Jetzt können wir uns die Population berechnen lassen. Zunächst werden wir kaum Unterschiede bemerken, da die ausgeschlossenen Elemente im Preview nicht zu sehen sind. Wenn man aber den Preview Ausschnitt verkleinert, kann man gut sehen, das die Population durch die Maske auf den Bildausschnitt begrenzt wurde.



Sollte die Population bereits durch andere Shader in ihrer Ausdehnung begrent sein, kann man die Maske ohne weiteres zusätzlich in einen Blendeingang eines vorhandenen Density-Shaders andocken.

So, das war nun die ganze Kunst. Viel Spass beim Probieren.

Hier noch die ZIP-Datei, mit der TGD und dem Image "blank_weiss.jpg"
Download