Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Ghandi

Treue Seele

  • »Ghandi« ist der Autor dieses Themas

Beiträge: 218

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

1

20.03.2004, 16:29

Terraintexturing

Um nicht immer den andern Thread zu belasten mach ich zu dem Thema mal nen extra Thread auf.
Was bisher Geschah:

Zitat

Ghandi:
Wie genau funktioniert das mit der Detail-map, is das eine riesiggrosse textur die über das Terrain gespannt wird (1 zu 1) oder is das irgendwas besonderes.

Das ist nämlich mein aktuelles Terraintexturing Problem, entweder ich nehm ne kleine TExtur die ich gannz oft "Tile", das sieht jedoch eintönig aus, oder ich nehm eine riessengrosse Textur, die ich 1 zu 1 drüberklatsche, was aber bei grossen Terrains bald schon an unmöglichkeit Grenzt, da so grosse texturen ganz schön am Speicher saugen, wie genau muss man das also machen.

Zitat

DragonMaster:
Eine Detailmap ist eigentlich nichts besonderes. Sie ist ebenfalls eine ganz normale Textur im 8Bit Graustufenformat. Die größe der Textur ist nicht so relevant. Sie sollte aber die 512x512 Gränze nicht überschreiten.

Ihre Aufgabe ist es Grobe Pixelbildung zu vermeiden und zusätzliche Details ins gelände zu bringen. Meist ist es. Man hat eine Grundtextur 512x512 z.B. die über das komplette Terrain gespannt wird. Dadurch entstehen natürlich grosse Pixel. Also spannt man die Detailmap darüber. Z.B. 12 mal. Dadurch werden die Pixel nicht mehr ganz so deutlich sichtbar.

Die Detailmap kann man z.B. mit ADDSIGNED mit der Basistextur verknüpfen.

@Terrain:
Battlefield macht das mit seinem Terrain so. Es werden 16 Basistexturen erzeugt. Jede 512x512 Pixel groß. Dadurch kommt es nicht zu so einer starken Pixelbildung bei den doch recht großen Terrains vo BF. Darüber wird dann noch mal eine Detailmap gespannt.

Zitat

Osram:
Detailmap ist genau als Antwort auf Dein Problem erfunden worden. Das besondere ist, dass 2 Texturen auf den selben Flächen verwendet werden.
Die eine wird 1:1 draufgespannt und hat grau für Strassen, grün für Wiesen etc etc. Daher ist jedes Pixel sehr gross, d.h. mit Triliniearem Filltering sieht es sehr ausgewaschen aus, technisch gesehen ist die Frequenz der rgb Informationen auf Deinem Monitor sehr gering (1 Texel sind vielleicht 50 Pixel aufm Monitor). Verschlimmernd hat man daneben Dinge wie die Hangars oder parkende Flugzeuge mit sehr hoher frequenz, was den Effekt noch offensichtlicher macht. Über dies Bild welches zeigt, was wo ist (Runway, Wiesen etc) kommt eine zweite, deren wesentliches Ziel es ist, die Frequenz zu erhöhen, d.h. "Details" reinzubringen. Dies ist also einfach "kriselig" und man kann sagen, sie zeigt Steine oder so etwas, aber das ist zweit-rangig. Das wichtige ist, dass sie nicht ausgewaschen aussieht. Ich hab mal ein Super Bild von einem gesehen, der hat nen Scan seiner Jeans als Detail map benutzt . Das hat man aber nicht erkannt, er hat es dazugeschrieben.

Detailmaps werden auf die Landschaft gekachelt, d.h. können relativ geringe Auflösung haben. Da die Auflösung der "eigentlichen" Landschaftstextur nicht mehr so auffält, kann diese auch eine geringere Auflösung haben als wenn man keine Detailmaps verwenden würde.


Mein Problem dabei sit dass ich mir nicht direkt vorstellen kann das das ganze dann Detailierten aussieht (mit euren Methoden). Dazu müsste ich es mal auprobieren.
Vor allem auch weil Dragonmaster (grosse Det.-map, kleine Texturmaps) es genau umgekehrt Handhabt wie Osram(Grosse Texturmap, kleine Det.-Map). Was denn nu, oder sind die Ergebniss beide brauchbar? Und wenn die Detailmap nur aus graustufen besteht geh ich davon aus dass sie nicht Mitoriginalfarben auf dem Gelände erscheint sondern die Grundtextur nur entsprechend:

-aufhellt/abdunkelt?
-Kontrastiert?
-sonstwas?

In Deinem Beitrag befinden sich noch Fehler.
Bitte bearbeite die rot markierten Stellen und lösche diesen Text.
Alles ist gut so wie es ist, am besten ist jedoch das niemand dies akzeptiert.

error C2039: 'DerSinn' : ist kein Element von 'CLeben'

2

20.03.2004, 18:39

Prinzipiell sollten Texturen nicht größer sein als 512x512 auch wenn Texturen der größe 4096x4096 möglich sind. Man kann es ja dem User überlassen. Wenn er hohe Details haben will bekommt er die große wenn nicht eben die kleinere.

Die Grundtextur eines Terrain ist eigentlich nicht genau so groß wie das Terrain selber. Dann hätte man schnell eine Textur die größer ist als 1024x1024 Pixel. Wie groß welche Textur ist, hängt immer von einem selbst ab und auf welchem Zielsystem das ganze laufen soll. Soll es z.B. noch mit alten Grakas laufen, dürfen die Texturen nicht größer sein als 256x256.

Die Detailmap hellt stellen auf und ab. Je nach dem wie man sie mit der Grundtextur verknüpft. Wenn du die beiden Texturen z.B. Multiplizierst heißts daß das du die Textur abdunkelst. Klar je kleiner der Wert der Detailmap ist desto Dunkler ist das ergebnis (0 == Schwarz). Darum wird meist ADDSIGNED verwendet. Das liefert ein besseres Ergebnis. Die Detailmap sollte auch nicht starke Kontraste besitzen (z.B. Schwarz neben Weis), es sei denn man will es so ;D. Das führt zu einem unschönnen Ergebnis.

Wie groß eine Textur sein soll oder nicht, hängt im wesentlichen immer davon ab was gebraucht wird. In einem Programm ist meine Grundtextur 256x256 groß und die Detailmap 512x512. Die Grundtextur wird dabei ebnfalls auf dem Terrain gekachelt. Sieht ebenfalls sehr gut aus und man kann es auch nicht erkennen. Weil meine Grundtextur passend dafür ausgelegt ist. Ich brauch in diesem Projekt aber auch keine Wege oder Strassen.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

3

20.03.2004, 19:50

Mit detail map:


(Link)


Ohne:


(Link)


Man sieht ohne Detailmap einen grossen Gegensatz des verwaschenen terrains gegen das Flugzeug und den Hangar. Wenn ich wegzoomen würde, wäre eher eher noch größer. In dem terrain kann man sogar einzelne Texel erkennen.


Der Sinn der Detail map ist dass dass Sie feine Strukturen wie Steine oder Grass darstellt, also Sachen die es vielleicht all paar cm, gibt. Die Haupttextur stellt z.B. eine Runway dar, wovon es die nächste in einigen zig km gibt. D.h. es reicht, wenn eine Detailtextur einen winzigen Bereich der Wirklichkeit abdeckt und sich dann wiederholt. Ich denke, hier ist 256x256 genug. Bei der Haupttextur kann man nicht genug haben. Gerade wenn Du recht harte übergänge durch künstliche Sachen wie Strassen hast muss die Auflösung hoch sein um "jaggies" zu vermeiden. Tatsächlich wird man bei einem FluSi normalerweise nicht alle Terraintexturen gleichzeitig in den Speicher bekommen. Man unterteilt normalerweise das terrain in Kacheln (tiles) und jedes Tile bekommt 1:1 eine Textur drüber.

Die Detailmap moduliert die Grundmap, d.h. variiert deren Helligkeit.

Zitat


Prinzipiell sollten Texturen nicht größer sein als 512x512 auch wenn Texturen der größe 4096x4096 möglich sind. Man kann es ja dem User überlassen. Wenn er hohe Details haben will bekommt er die große wenn nicht eben die kleinere.


Zumindest optional sollte heutzutage gösser als 256x256 möglich sein. Wenn man die Texturen nicht packt, in normalen Fällen (Gelände, Militär Flugzeuge, Häuser, Natürliche Dinge etc) sollte man eher mit 8 bit Farbindiziert arbeiten, sodass man nur 1 Byte pro Texel hat, als mit der Auflösung runterzugehen. Dann ist 1024x1024 also ein MB. Bei einer heutigen GraKa keinerlei Problem.

Zitat


Soll es z.B. noch mit alten Grakas laufen, dürfen die Texturen nicht größer sein als 256x256.


Wenn laufen "optimal aussehen" bedeutet, stimmt das. Benutzt du höhere Auflösungen und der Nutzer hat ne Voodo, so rechnet IMHO DirectX automatisch die Auflösung runter.

Zitat


In einem Programm ist meine Grundtextur 256x256 groß und die Detailmap 512x512.


Hm. In diesem Fall war aber wahrscheinlich das Gelände sehr eintönig?

Zitat


Ich brauch in diesem Projekt aber auch keine Wege oder Strassen.


Aha!

Ghandi

Treue Seele

  • »Ghandi« ist der Autor dieses Themas

Beiträge: 218

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

4

21.03.2004, 08:21

AH!! Danke euch beiden, jetz weiss ich genau wies gemeint ist und kann es mir auch vorstellen. Ich kann garnicht erwarten nach Haus zu kommen und es auszuprobieren :).

Von euch weiss nich zufällig einer wie man in OpenGL den "ADDSIGNED" modi einstellt? Oder wie man über haupt den "Multitexturing-mode" einstellt?

Wenn nich, macht auch nicht, ich werd das schon irgendwo finden, ich denke das stellt jetz das kleinste Problem da.

Danke nochmal, meine Probleme sind gelöst :)
Alles ist gut so wie es ist, am besten ist jedoch das niemand dies akzeptiert.

error C2039: 'DerSinn' : ist kein Element von 'CLeben'

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

5

21.03.2004, 12:17

@Osram:
Ui, wow! Das sieht ja spitze aus xD
Is das vielleicht aus nem eigenen Programm von dir?
Mozilla Firefox
The Browser - reloaded

MannyDasMammut

Treue Seele

Beiträge: 76

Wohnort: Baden - Würtemberg / Achern

Beruf: Schüler

  • Private Nachricht senden

6

06.04.2004, 15:29

Ich hab das in einem Shader gelöst

Hallo

Zu meinem verfahren:

Ich benutze einen Shader er ist zwar etwas langsam lässt das Terrain aber doch sehr schön ausschauen. Ich benutze dazu ganz normales Detailmapping. Ich habe einen Vertexshader der die ganz normale Textur untransformiert an den Pixelshader weiter reicht und eine zweite Textur ( 1. Detailmap über das Terrain Skaliert um heraus zu finden wo die erste Detail map jetzt z.B. für Stein angezeigt werden soll filtere ich aus einer dritten Textur den Rot Kanal heraus alles was Rot ist wird mit dieser Detailtextur vebunden alles was Grün ist mit der zweiten und alles was Blau ist mit der dritten.
Werde ich hier eigentlich noch gebrauch ansonsten würd ich gerne nach Hause gehen und meine graue Wand anstarren.

Werbeanzeige