Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
05.02.2002, 17:50
Predi



Hi,
folgende Frage, wie kann ich die Aufteilung in 224er Einheiten ändern, ohne die Texturen zu skalieren ? Habe ne Altstadt mit vielen Häusern gebaut.
Dummerweise sind die Geschosshöhen genau 256 Einheiten hoch. Um die r_speeds zu optimieren hat ich eigentlich net vor nun alle Häuser zu verkleinern.

Thx im Voraus

--

zum Seitenanfang zum Seitenende Profil || Suche
001
05.02.2002, 17:59
LePrau



TheVoice hat mir mal die ZHLT umgecodet, damit die erst nach 256 Units einen neuen Patch anfangen, nur haben die bei allem , was nicht parallel zu den drei Grundebenen war rumgespackt. Von daher ist es leider nicht möglich. Wenn du r_speeds in weiträumigem Gelände (Sollte ja auf Stadt zutreffen...) optimieren willst, solltest du dir vielleicht meinen Hint-Brush-Artikel durchlesen und anschließend schauen, ob du Seitenstraßen o.ä. einfach geschickt durch VIS "ausblenden" lassen kannst.
Eine andere Möglichkeit wäre einfach die Texturen selbst auf 224x224 zu ändern und dann nochmal anzupassen. Mit anderem Scaling verschieben sich ja auch die Patchgrößen, da die relativ zur Texturierung sind. Bei einer 2x2 gescalten Textur z.B. sind die Patches dann 448x448 Units groß.

PS: Auch wenn es evt. entgegen meines Wissens 240 Units pro Patch sind, die Problematik ist die selbe und lässt sich nicht ohne Aufwand und brutale Änderungen an den Compilern umgehen.

--

voice - Ruhe in Frieden

zum Seitenanfang zum Seitenende Profil || Suche
002
06.02.2002, 10:02
Predi



Thx LePrau

1. Hatte mich vertan ;-). Die Geschossen sind 128 Einheiten,
die Texturen 256. Habe diese auf 224 verkleinert nu passt es wieder.

2. Ist hier eigentlich nochjemand so verrückt und arbeitet mit größeren
Texturen, damit die Qualität besser ist ?

--

zum Seitenanfang zum Seitenende Profil || Suche
003
06.02.2002, 11:48
LePrau



Wenn ja: Selbst schuld.

Ach übrigens, wenn die Geschosse selbst nur 128 Einheiten groß sind solltest du die Texturen auch nur 128 Einheiten groß machen. Beim kleiner-scalen als 1:1 geht die Framerate runter OBWOHL die w_polys sich nicht ändern. Da die Eginge sich sehr an dem 1x1er Grid orientiert, mag sie es nicht eine Textur kleiner zu scalen. Bei einzelnen Details fällt es sicher nicht auf, aber wenn du ganze Geschosswände auf diese Weise ... nunja, dann kann es sein das du damit bei 300 w_poly manchen 450 Mhz-Rechner in die Knie zwingst :D

Abgesehen davon scaled Halflife selbst die Texturen, deren Seiten nicht einer glatten Zweierpotenz (16,32,64,128 oder 256) entsprechen um, und dann sehen die nicht mehr schön aus :/

Dazu verweise ich dich mal an diesen Link:
http://www.thewall.de/ThWboard/showtopic.php3?threadid=1311

PS: Die Bilder gibts noch, musst nur den Link rauskopieren und von Hand in die Browserzeile eintragen :)

Im Endeffekt heißt das solange es nicht dazu beiträgt r_speeds zu senken sondern nur damits schöner aussieht, sollte man ein kleinerscalen lassen und stattdessen die Texturen verkleinern. für eine 256x256-Textur kann man im Speicher 4 verschiedene 128x128 Texturen benutzen und TADAA reicht der Texturspeicher schon deutlich länger. Außerdem sieht es wahrscheinlich mit 128x128 ingame trotzdem besser aus als mit 224x224, eben wegen des genannten Phänomens. Wenn ich eine Textur habe, die nur z.B. 160 Einheiten groß sein soll, mache ich (sofern sie nicht kachelbar sein muss) einen Trick:
Ich füge sie in die nächstgrößere "saubere" Größe ein und lasse den Rand einfach einfarbig. Im Editor passe ich die Textur dann sauber an und keiner kennt den Trick ... naja, zumindest keiner den ich kenne ...

Achja, wenn die Texturen dann nur noch 1:1 und 128x128 groß sind, reduzieren sich die r_speeds ja nochmal :D

[edit]
Ich zeigs dir schnell mit einem von Terms Bildern: linke Textur 192x96, rechte Textur nur noch 128x64, TROTZDEM sieht die mit "glatten" Maßen besser aus:
Buh. Nu überleg was dir lieber ist :D
[/edit]

--

voice - Ruhe in Frieden


Dieser Beitrag wurde am 06.02.2002 um 11:53 von LePrau bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
06.02.2002, 12:13
Bobby



Das heißt die Seiten von Texturen sollten immer glatte Zweierpotenzen (16,32,64,128 oder 256) groß sein? Also ist z.B. 96 x 96, nicht so ganz ideal?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
06.02.2002, 12:39
LePrau



Exactly, siehe diesen Thread aus dem Jahre 2000, http://www.thewall.de/ThWboard/showtopic.php3?threadid=1311

der mal in die Lernressourcen wandern sollte ;)

Wobei natürlich 128x32 genauso ideal ist wie 128x128, quadratisch müssen die Texturen eben nicht sein, aber "glatte" Werte. Damals waren auch alle erstaunt dass das solche Unterschiede mit sich bringt.

--

voice - Ruhe in Frieden


Dieser Beitrag wurde am 06.02.2002 um 12:40 von LePrau bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
06.02.2002, 13:12
Predi



Erstmal danke, wieder was neues gelernt.

aber:

Zitat:
LePrau postete
Im Endeffekt heißt das solange es nicht dazu beiträgt r_speeds zu senken sondern nur damits schöner aussieht, sollte man ein kleinerscalen lassen und stattdessen die Texturen verkleinern. für eine 256x256-Textur kann man im Speicher 4 verschiedene 128x128 Texturen benutzen und TADAA reicht der Texturspeicher schon deutlich länger. Außerdem sieht es wahrscheinlich mit 128x128 ingame trotzdem besser aus als mit 224x224, eben wegen des genannten Phänomens.
[/edit]

Nemen wir mal die obengenannte Stadt. Es handelt sich dabei um Fachwerkhäuser. Die haben 4 Wandarten(Ziegel,Putz etc) mit 4 Fachwerktypen, jeweils 4 versch. Türen und 6 versch. Fenstern.
Die kompletten Häuser bestehen aus Blöcken (128x128x128).
Da die Texturen ja 224x224 Einheiten groß sind werden sie runterscalliertm damit sie auf einen Block passen. die Aufteilung in 224er Ebenfalls, als habe
pro Blockseite bei drawflat genau ein Quadrat. Wenn ich die Texturen nun in
4 Teile aufspalten würde, müßte ich jeden Block auch vierteln. Also habe ich wieder 4 Flächen pro Wandabschnitt und die r_speeds ...

Achja, habs auch schon ausprobiert, die Texturen runterzuscalen und die diese
in die wad gepackt. Sieht besch... aus, die Qualität der Strukturen ist dann fürn Ar...

Auch wenn es sonst anders ist. Aber in diesem Fall ist es anders. Die map
ist relativ groß. Ein viertel der WC-Fläche. Und ich habe bis jetzt im Schnitt
400 WorldPolys, und das obwohl schon ziemlich viele Details in der Map sind,
und teilweise weite Sichtflächen.
Naja brauche zwar 5.5MB an Texturen, aber selbst auf meinem alten 300er mit TNT2 un 128MB-Ram ist die noch locker spielbar.

--

zum Seitenanfang zum Seitenende Profil || Suche
007
06.02.2002, 13:36
LePrau



Oki war nur so ein allgemeiner Hinweis, letzten Endes musses ja eh jeder für sich entscheiden :D

--

voice - Ruhe in Frieden

zum Seitenanfang zum Seitenende Profil || Suche
008
07.02.2002, 13:29
Bobby



D.h., wenn ich einen Brush 48x48 mit einer Textur belegen will, sollte ich eine 64x64 machen und dann halt einfach nur einen Auschnitt davon verwenden und den dann richtig hinschieben?

--

zum Seitenanfang zum Seitenende Profil || Suche
009
07.02.2002, 13:46
Term



Exakt. Hier z.B. eine Textur die ich für CS:CZ gemacht habe (mit Schrift belegt damit keiner von Euch auf dumme Gedanken kommt :)):

Wie man sieht, wird nur der obere Teil mit den Briefkästen benutzt, trotzdem habe ich das Ding auf 128x128 angelegt um das Ausfransen der Textur in der Engine zu vermeiden. Ich hatte damals dann auch mal bei Gearbox angefragt und dort wurde bestätigt, daß die Engine dieses seltsame Verhalten hat. Der Grund dafür ist, daß der Renderer in jedem Fall die Texturen vor der Darstellung auf ein "Gardemaß" (16, 32, 64, 128, 256) skaliert, und zwar durch eine eigene lausige Form der Interpolation. Erst dann wird die Textur in der Welt dargestellt und sieht deshalb dementsprechend dürftig aus.

Für CS:CZ gilt bei Gearbox jedenfalls die Regel, daß nur die ordentlichen Größen für Texturen verwendet werden dürfen, alle anderen Texes werden entweder von vornerein anders skaliert oder eben so wie meine oben mit "Überschuß" angelegt. Ein zusätzliches Problem der abweichenden Größen ist nämlich auch, daß die Engine mehr Rechenleistung benötigt um die Texturen erstmal zu scalen, insofern macht die Verwendung von ordentlichen Maßen sogar die Maps schneller!

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]


Dieser Beitrag wurde am 07.02.2002 um 13:49 von Term bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
07.02.2002, 17:33
Kriz



Sprachs und verschwand wieder in seiner Erdhöhle... (hrhr)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
011
07.02.2002, 17:33
Prefect



Ja, das mit den Texturmaßen ist ja ein OpenGL-Problem: OpenGL verlangt, daß die Texturen 2^x als Größe haben, das heißt die Engine _muß_ scalen.
Die Frage ist dann halt, ob sie hoch- oder runterscalet... wahrscheinlich sieht es aber so oder so schlecht aus.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
012
07.02.2002, 17:42
Linga
Administrator


jup das tut es so oder so. eben darum ist das problem auch heute nicht vom tisch. daher ist es völlig wurst, ob eine textur 128x256 oder 256x256 skaliert ist (in sachen speicher). denn sie wird so oder so quadratisch skaliert. wenn man die dinger also gleich quadratisch macht -> weniger benötigte rechenzeit, hübschere texturen + noch freier platz auf der textur für andere sachen.

--

zum Seitenanfang zum Seitenende Profil || Suche
013
07.02.2002, 18:00
HostileKiller



Ok was neues gelernt jetzt kann ich alle meine texturen um scalen oder wegschmeißen.

--

zum Seitenanfang zum Seitenende Profil || Suche
014
07.02.2002, 18:46
Bobby



Heißt das denn jetzt etwa, das ich, wenn ich einen Brush 128x256 baue und mit einer Textur belegen will, es besser ist, die Textur 256 x 256 zu machen und die Hälfte eben leer zu lassen? Ist das schneller als 128 x 256, oder was genau ist der Vorteil?

--

zum Seitenanfang zum Seitenende Profil || Suche
015
08.02.2002, 09:08
Bobby



@Linga: Meintest du, dass es nicht sinnvoll ist, eine Textur in einer Richtung mit 0.5 und in der anderen mit 1 zu scalen, da die HL-Engine die Seiten sowieso zuerst proportional scaliert? (Oder sollten alle Texturen idealerweise etwa quadratisch sein?) Ich bin nämlich gerade dabei (bzw. fange erst an) Texturen zu machen *g*.

--


Dieser Beitrag wurde am 08.02.2002 um 13:51 von Bobby bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche