Problem mit 16Fach Maps

User avatar
dennis2408
Posts: 214
Joined: Mon Apr 06, 2009 1:07 am
Location: Duisburg (NRW)
Contact:

Problem mit 16Fach Maps

Post by dennis2408 » Thu Dec 31, 2015 9:58 pm

Servus,
wir versuchen gerade eine 8192x8192 also 16 Fach Map die wir im LS13 mal angefangen haben im LS15 zum laufen zu bekommen.
Leider scheint die Engine da dicht zu machen, alles was über 8 Fach ist, Funktioniert nicht mehr.
Alles an Früchten was über die 4096x4096 hinaus geht, wird an den Rand der 4k geschoben.
Sprich zwischen 4096 und 8192 ist dann alles leer.
Das ist im GE schon so und im Spiel leider auch.
GRLE habe ich mit 4k, 8k und 16k getestet ist bei allen das selbe.
Hier mal ein Bild vom GE:
http://www.ages-sonnenschein.de/hosting ... b92kjw.png

Habe einen Würfel erstellt der 4096x4096 ist.
Ich hoffe uns kann da einer weiter helfen, oder ist das mal wieder eine limitierung von Giants wegen Performance usw?
Im Spiel lässt der Weizen sich auch Dreschen, er wird halt nur optisch nicht richtig dar gestellt.

Greetz Dennis
Image

User avatar
UliS
Posts: 1282
Joined: Sat Aug 13, 2011 9:14 pm
Location: Berlin (14532 Klm.)

Re: Problem mit 16Fach Maps

Post by UliS » Thu Dec 31, 2015 11:56 pm

Schon mal auf Marhus Seite geschaut, da war mal was mit 16 fach.

User avatar
dennis2408
Posts: 214
Joined: Mon Apr 06, 2009 1:07 am
Location: Duisburg (NRW)
Contact:

Re: Problem mit 16Fach Maps

Post by dennis2408 » Fri Jan 01, 2016 11:02 am

Hallo Uli,
danke für den Tip, den hat mir ein Team Mitglied auf gegeben und da habe ich es auch Probiert.
Leider mit dem Selben Problem, ab 4096m ist schluss.
Habe eine leere grle genommen und im Grafikprogramm Rot eingefärbt.
Auch wenn ich bei der leeren GRLE im GE versuche was anzupflanzen was außerhalb der 4k ist wird es am Rand der 4k Grenze angezeigt.

Greetz Dennis
Image

User avatar
JahRass
Posts: 175
Joined: Sat Nov 29, 2014 10:51 pm

Re: Problem mit 16Fach Maps

Post by JahRass » Fri Jan 01, 2016 11:56 am

Hallo dennis2408,

das Problem der 4 er Grenze ist schon bekannt, eine Lösung ist nicht in Sicht.
Ob da eine Limitierung vorliegt, könnte schon sein.
Hier ein alter Thread zu diesem Thema.

Grüße
JahRass

User avatar
dennis2408
Posts: 214
Joined: Mon Apr 06, 2009 1:07 am
Location: Duisburg (NRW)
Contact:

Re: Problem mit 16Fach Maps

Post by dennis2408 » Fri Jan 01, 2016 12:45 pm

Hi,
danke für den Link,
ist zwar schon älter aber da ist genau das selbe Problem.
Tja und da Giants damals schon nicht drauf eingegangen ist, werden sie es jetzt wohl auch nicht tun.
Schade eigentlich, in LS13 hatte die Map wunderbar Funktioniert.

Greetz Dennis
Image

Stegei
GIANTS Software | CTO
Posts: 1543
Joined: Sat Jun 09, 2007 10:51 am

Re: Problem mit 16Fach Maps

Post by Stegei » Tue Jan 12, 2016 8:27 am

Mit dem LS15 wurde das Rendering des Foliage etwas umgestellt, wodurch allerdings eine maximale Grösse der Map angenommen werden musste. Diese wurde bisher fest auf +- 2048m gsetzt. Entsprechend ist als bei 4x Maps Schluss für Foliage.
Mit dem nächsten Patch haben wir allerdings die Möglichkeit eingebaut, die maximale Grösse per Script festzulegen.
setFoliageMaxTerrainSize(maxX, maxY, maxZ).

D.h. die bisherige Einstellung entspricht: setFoliageMaxTerrainSize(4096, 512, 4096)

Für eine 16x Map, müsste man also dann neu in der Map lua die Funktion so aufrufen:
setFoliageMaxTerrainSize(8192, 512, 8192)
Zudem müssen die Foliage Shader angepasst werden. Z.B. in der fruitGrowthFoliageShader.xml muss folgende Zeile angepasst werden:
alt: float3 blockPos = In.blendWeights.xyz * float3(2048,256,2048) + float3(0,256,0);
neu: float3 blockPos = In.blendWeights.xyz * float3(4096,256,4096) + float3(0,256,0);


Im GE muss man übrigens ebenfalls diese Funktion aufrufen damit das richtig angezeigt wird. Ausserdem muss man auch die World Size für das Culling angeben. Andernfalls hat man das Problem, dass die Objekte teilweise nicht richtig angezeigt werden.

Code: Select all

setAudioCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 16);
setLightCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 16);
setShapeCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 64);
Damit der Mod auch die Voraussetzung hat den aktuellsten Patch zu verwenden, sollte man zudem auch die modDescVersion in der modDesc.xml entsprechend anpassen auf 25.

Der Patch ist im Moment im Testing und wird vermutlich nächste Woche erscheinen.

P.S: Danke an HeinzS für den Hinweis, dass der gleiche Post im alten Thread nicht wirklich sichtbar ist.

User avatar
HeinzS
Posts: 10603
Joined: Mon May 16, 2011 5:19 pm

Re: Problem mit 16Fach Maps

Post by HeinzS » Tue Jan 12, 2016 8:45 am

da mein Thread anscheinend im Nirwana verschwunden ist :confusednew: hier noch mal ein Auszug:
In dem Zusammenhang weise ich aber nochmal auf meine Bedenken hin:

Bisher habe ich aber kaum 4-fach Maps gefunden, die wirklich gut gemacht und alle Flächen benutzt haben und dabei keinen Highend PC brauchten um ohne Dia Show zu laufen.

Nicht das man nach mehreren tausend Stunden Arbeit feststellt, das die Map nur für Ablage P geeignet ist.

Stegei
GIANTS Software | CTO
Posts: 1543
Joined: Sat Jun 09, 2007 10:51 am

Re: Problem mit 16Fach Maps

Post by Stegei » Tue Jan 26, 2016 5:51 pm

Der Patch 1.4.2 ist nun veröffentlicht, mit dem die Funktion setFoliageMaxTerrainSize hinzugefügt wurde.
Ebenfalls ist der neueste GIANTS Editor 6.0.5 auf dem GDN verfügbar, welcher ebenfalls diese Funktion unterstützt.

Wie oben beschrieben, müssen für den entsprechenden Mod alle Foliage Shader angepasst werden. Wenn also gegenüber der Standard-Map keine neuen Shader erstellt werden, dann sind dies die Shader in fruitGrowthFoliageShader.xml, windrowFoliageShader.xml und solidFoliageShader.xml

Da der Mod nur ab Patch 1.4.2 funktioniert, sollte auch verhindert werden, dass dieser erst gar nicht geladen wird mit einer älteren Version des Spiels. Dazu kann in der modDesc.xml das Attribut "descVersion" auf 25 gestellt werden.

Die benötigten Script-Befehle kann man im GE im "Scripting" Panel eingeben. Dazu erst die Befehle eingeben und dann Shift+Enter drücken.

Für eine 16fach (64km2) Map, wäre dies dann:

Code: Select all

setFoliageMaxTerrainSize(8192, 512, 8192);
setAudioCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 16);
setLightCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 16);
setShapeCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 64);
Ich kann zudem dazu das neu im GE 6.0.5 hinzugekommene Script Menu empfehlen. Dazu im Menü "Scripts->Create new Script..." wählen, dann als Name "setup_16x_map" eingeben, "Create" klicken und dann im aufgehenden Script Editor fenster den Code im folgenden Spoiler eingeben und "Save" klicken:

Code: Select all

-- Author:Stegei
-- Name:setup_16x_map
-- Description:Enables editing a 8km x 8km map
-- Icon:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAKNJREFUOI3NkrENgzAQRR+IgiI01AyTGgbIHMzAFIgqm1BklpQpGMDQgHR8jE2DlC9Z8tf9+2ffHfwTvsBkTi3xUeI9QGYED6AAkpMCT3N3QA6QiigB5shLnc1Tg5jJLlnRCFcTJ7w8M7LYelRdEd+CrXJ3RTwK1z9rT7RnTIFkn8kb/CMJjeowYhUG5+wzsWvbs67nihb4GV4DL8M/wBApFscCKtIfVGZymAcAAAAASUVORK5CYIIAAAAAAAAAAAAAAACHQz+sAAoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIVDPawATwCAAAAAAAAAAACEQzysABIAgAAAAAAAAAAAm0MzrABQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZQzGsAFEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ9DN6wAUgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUM1rABTAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTQyusAFQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJFDKawAVQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0MvrAALAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQy2sAFcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtDI6wAWACAAAAAAAAAAACqQyKsABQAgAAAAAAAAAAAqUMhrABZAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvQyesAFoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1DJawAWwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo0NbrABcAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChQ1msAF0AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKdDX6wADACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApUNdrABfAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Q1OsAGAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlDUawAYQCAAAAAAAAAAAC4Q1CsABYAgAAAAAAAAAAAv0NXrABiAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9Q1WsAGMAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALNDS6wAZACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsUNJrABlAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3Q0+sAA0AiA==

setFoliageMaxTerrainSize(8192, 512, 8192);
setAudioCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 16);
setLightCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 16);
setShapeCullingWorldProperties(-4096, -100, -4096, 4096, 500, 4096, 64);
Damit gibt es dann den neuen Menü Eintrag "Scripts->Setup 16x Map", welchen man bei jedem Start des GE anklicken kann, damit die richtigen Einstellungen vorgenommen werden. Optional kann man auch ein Icon dafür in der Toolbar anzeigen lassen. Dazu im Script Editor im Drop-Down "Toolbar", eine gewünschte Toolbar wählen, z.B. "Scripts 1".

Wie HeinzS bereits bemerkt hat, sind natürlich die Performance-Optimierung bei einer 16fach noch wichtiger als sonst schon. Z.B. Nur so gross wie nötig, wenn möglich als DXT1 komprimiert (für Alpha Texturen als DXT5), Clip-Distance Werte so klein wie möglich setzen (grössere Gebäude etwa 500-1000, kleinere Objekte je nach dem nur ca. 20-50, etc.. Grundsätzlich sollte man bei fast keinem Objekt die Standard Clip Distance gesetzt lassen. Werte die grösser als ca. 1000 sind, braucht man nur für Distanz Objekte wie z.B. Berge), Texturen wiederverwenden wenn möglich (z.B. mehrer ähnliche Gebäude mit unterschiedlicher Geometrie aber alle mit der gleiche Texture), etc.

Im Anhang habe ich zudem eine angepasste SampleModMap.lua aus dem SDK und die angepassten Shader hinzugefügt.
SampleModMap.lua
(6.1 KiB) Downloaded 574 times
fruitGrowthFoliageShader.xml
(3.84 KiB) Downloaded 599 times
windrowFoliageShader.xml
(3.34 KiB) Downloaded 530 times
solidFoliageShader.xml
(1.74 KiB) Downloaded 483 times

Post Reply