Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
02.01.2005, 23:51
r99t



Hi Leute!

ich arbeite zur zeit an einer Map, die mit der zeit auch größer wird. Das hat leider auch in etwas größeren Arealen FPS-Drops zur Folge. Nun suche ich schon ewig ein gutes Tutorial zur Optimierung meiner Map. Ich habe gegooglet und areaportal und areaportalwindow gefunden. Leider weiß ich nicht, wie man diese genau einstezt. Vielleicht kann hier mal einer ein gutes Tutorial im Wiki veröffentlichen. Das würde mir, und sicher auch vielen anderen, sehr weiterhelfen.

MfG r99t

--

zum Seitenanfang zum Seitenende Profil || Suche
001
03.01.2005, 00:47
D3LeGaToR



ich frag hiermit auch mal direkt nach, ob jemand ein tutorial zur performance verbesserung erstellen kann. ich vermute, man kann die map in areas aufteilen, die dann einzeln berechnet werden, weiß aber nicht genau, wie das geht. hinzu kommt bei mir das problem, dass das rendern ewig dauert, wenn ich VVis und RAD aktiviere, ich vermute, auch das kann man irgendwie verbessern, wenn man die map in areas aufteilt.

außerdem wäre es interessant zu wissen, was alles in meinem sichtfeld gerendert wird. ich vermute der pc guckt durch props und displacement durch, wie isses bei bsp, blockt das die sicht? gibt es andere sachen, die die sicht blocken?

--

zum Seitenanfang zum Seitenende Profil || Suche
002
03.01.2005, 01:54
Speedmaster



Ich könnte ein Tutorial schreiben, aber wenn du eine voll Optimierte map willst von dem Brushwork her gibt es für HL1 ein gutes Tutorial was auch für HL2 gilt:
http://www.thewall.de/content/half-life:tutorials:r_speeds

--

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.

Möge Star Trek in Frieden Ruhen, den am 06.02.2005 bekam ich mit das die Serie Enterprise abgesetzt wird!

zum Seitenanfang zum Seitenende Profil || Suche
003
03.01.2005, 17:27
D3LeGaToR



wow, das tut ist nicht schlecht. leider helfen die meisten tips wie der donut-gang nur bei indoor maps, bei outdoor maps kann man sie kaum anwenden.

zwei kleine frage noch: gewölbte oberflächen ziehen das compilieren in die länge und verschlechtern die performance, selbst bei ganz leichten wölbungen. wenn ich solche objekte in func_details umwandle, behebe ich dann damit die probleme, oder muss ich versuchen, die wölbung zu entfernen?

2.: ich hab in meiner map mehrere brushes, die ich in func_detail umwandeln möchte. hab sie alle gleichzeitig selektiert und umgewandelt, nun sind aber alle brushes zusammen 1 func_detail. optisch kein unterschied, kann es sonst noch irgendwelche auswirkungen haben, sprich, soll ich die brushes lieber einzeln in func_detail umwandeln? die brushes hängen nicht zusammen sondern sind über die ganze map verteilt.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
03.01.2005, 18:42
Linga
Administrator


bei hl1 wurden solidentitys, die einer gruppe zugehörig waren, zwangsweise komplett gerendert, sobald eines sichtbar war. würde also bedeuten, dass, wenn das bei hl2 auch zutrifft, immer alle func_details gerendert werden, wenn sie alle zusammen gruppiert sind.
generell kann man torbögen etc. zu func_detail machen - der compiler macht nach der visibility-berechnung quasi normale brushes daraus. allerdings blocken func_details genau so wie displacements keine visibility - man muss dahinter also nochmal extra wände setzen. ob das lohnt sollte man ggf. mit glview überprüfen (liegt im sdk/bin dir) - bsp muss mit -glview gestartet werden, dass entsprechende file dann in die glview.exe droppen. wenn die leafs all zu wirr liegen, sollte man dann also ggf. detail brushes daraus machen. alternativ kann man mit hint brushes dagegen vorgehen.
große aussenareale sollten generell großflächig aber durchdacht mit hintbrushes optimiert werden, kann die vis compile-dauer dramatisch verkürzen. wie man das am besten macht wird, wie alle anderen fragen diesbezüglich auch, in der source docu beschrieben.

--

zum Seitenanfang zum Seitenende Profil || Suche
005
03.01.2005, 20:01
D3LeGaToR



ok, also probier ich jetzt hint brushes zu benutzen, um die compiler zeit zu verkürzen. ich bin mir aber nicht sicher, ob ich alles richtig verstanden habe. hab deshalb folgendes bild angefügt:

zu sehen:

- stadt gebaut aus brushes, unten straße, dann häuser
- alles ist von einem skyboxwürfel umschlossen und schwebt quasi in diesem würfel
- hintbrush ist zu sehen, alle seiten sind mit einer skip-texture belegt, eine seite ist mit hint belegt.
- der hintbrush schwebt auch in der luft, er schneidet sowohl häuser als auch straße / er dringt durch sie durch oder in sie ein, und er berührt nirgendwo die skybox, ist also nach oben und unten hin offen.
- das ist nur einer von mehreren hintbrushes, in der map würde ich jetzt mehrere von diesen platzieren, gleiche höhe und breite, nur auf der x und y achse verschoben, gedreht und gescalt.

frage:

wende ich die hint brushes richtig an, oder muss man die anders platzieren?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
03.01.2005, 20:20
Linga
Administrator


also erstens einmal ist es grundsätzlich widersprüchlich die compilerzeiten verkürzen zu wollen aber eine ober-extra-mega-zeit-fressende skybox um alles herum zu ziehen. sky kommt nur da hin, wo er hin soll und wird sauber an die levelgeometrie angepasst und auch nach oben hin so dicht wie möglich gesetzt.

was die platzierung der hint brushes angeht: ich schätze dem screen nach einfach mal, dass du garnichts über deren platzierung verstanden hast ;) lies dazu doch bitte mal das passende deutsche tutorial in der hl1 kategorie hier auf thewall um die grundsätze des leaf-portal-systems zu verstehen.

--

zum Seitenanfang zum Seitenende Profil || Suche
007
03.01.2005, 22:26
D3LeGaToR



auf dem nächsten pic siehste meine map von unten. probier da mal den sky dran an zu schließen! ne aufgezogene box ist da deutlich simpler. kannst jetzt zwar meinen baustil kritisieren, aber ich bins vom unrealed gewohnt so zu bauen. muss allerdings gestehen, hab bis heute noch nichts von diesen komischen leafs gehört, die meiner meinung die sache unnötig verkomplizieren. da hätte man die engine ruhig etwas mapperfreundlicher konzipieren können. aber naja, müssen wir halt mit leben.

ich werd die skybox jetzt sehr eng ziehen, sie aber nicht direkt anschließen, das wäre zu aufwendig. außerdem ragen noch probs weit nach außen (als hintergrund), was dann auch wieder die skybox vergrößert.

zu den hint brushes: ich hab mir die tuts durchgelesen, wenn aber automatisch nach 224 (warum eigentlich keine echte 2erpotenz?) textureinheiten geschnitten wird, wird bei einem texturscaling von 0.25 ja alle paar cm geschnitten. selbst wenn dieser wert für HL2 nicht mehr aktuell wäre, würde noch sehr oft geschnitten werden.

jedenfalls seh ich kaum ne möglichkeit in meiner map, noch irgendwas durch hintbrushs zu verbessern, die geomtrie ist ja trotz allem recht leaf freundlich, fast immer 90° winkel, an einigen wenigen stellen 45°. nur die schrägen dächer sind ein bisschen fies, da könnte ich mir vorstellen, durch eine zum horizont parallele hintfläche den bereich nach oben ab zu grenzen.

wenn jemand ne idee hat, wie ich hier hintbrushes am besten anbringen könnte, kann er sie gerne posten ;)

--


Dieser Beitrag wurde am 03.01.2005 um 22:26 von D3LeGaToR bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
04.01.2005, 00:22
Linga
Administrator


es wird nicht nach 224 units geschnitten, diese werte gelten für hl1. in hl2 wird alle 1024 gesplittet, demnach kann man eine map auch daran optimieren (wenn das denn möglich ist). weiterhin sollte dieses splitting nichts mit der texturskalierung zu tun haben, einzig die gewählte lightmap res sollte dabei eine rolle spielen.

deine argumentation zum thema sky ist völlig unsinnig. props, die im hintergrund gelegen sind, macht man in eine seperate 3d skybox, sollte Dir von unreal bekannt sein. dann hast Du diese probleme nicht und kannst den sky direkt am maprand entlang ziehen, wenn du für mehr aufwand schon nicht zu haben bist, wobei ich mir aber die frage erlaube, was bitte so schwer daran ist, die skysolids exakter zu ziehen? die 5 minuten, die man dafür braucht, schenken einem u.u. stunden beim compilen.
ganz davon abgesehen, dass die map dadurch um einiges an performance im spiel gewinnt, weil das vissing bei weitem nicht so unsinnige leafs abtasten muss.

die hintbrushes, so wie du sie gesetzt hast, solltest du wieder raus tun, da sie unter umständen nur negativ wirken. bei einer detailärmeren map wie dieser ist auch keine optimierung diesbezüglich notwendig, das schafft die engine auch so. mach feinere bsp geometrie auf jeden fall immer zu func:_detail. das blocktg zwar kein vising (also vorsicht) aber dafür splittet diese geometrie auch keine anliegenden brushes auf. schattenberechnung, kollision, etc. bleibt gleich.

--

zum Seitenanfang zum Seitenende Profil || Suche
009
04.01.2005, 11:58
D3LeGaToR



ok, func detail setz ich jetzt schon in hohem maße ein, auf pic 1 sind nicht nur alle props, sondern auch alle func_details ausgeblendet, deshalb die detailarmut.

mit der skybox überleg ich mir nochmal, aber ich selber finde, es sieht besser aus, wenn nahe details wie diese häuser noch im level und nicht in der skybox drin sind. und das kenn ich tatsächlich vom unrealed. ;)

--

zum Seitenanfang zum Seitenende Profil || Suche