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

Anonymous

unregistriert

1

31.05.2004, 16:56

Wellige Ecken bei Riesen-Levels

Hallo,

Umso größer ein Level ist, umso zackiger sind die Wellen und bei großer Entfernung in solchen Riesenlevels sind die umso größer. Wenn ich mich bewege bewegen sich diese eckigen Wellen auch, also ich mein die Linien zwischen den Texturen bei sehr weit entfernten Objekten aber nur bei sehr großen Levels. Das fängt schon bei einer Skalierung über 1.0f an:

Level: Textur A <----> Welle dazwischen eckig und bei bewegung auch bewegent aber nur bei großer Entfernung <----> Textur B

Wenn ich nah ran geh werden diese eckigen Wellen kleiner bis ganz weg.
Bei sehr kleinen Levels passiert das nicht, warscheinlich weil ich dann alles sehr nah dran hab.

Hab verschiedene Texturfiltermodes ausprobiert, auch nicht geholfen.

Aktuell hab ich das:

GX->SetSamplerState( 0, D3DSAMP_MIPFILTER, 3DTEXF_LINEAR );
GX->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
GX->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );

Woran liegt das und wie entfern ich die?
Das alles klein zu sklaieren auf 0.3 oder so ist ja auch nicht ideal.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

31.05.2004, 17:01

Die Texturfilter sehen OK aus.
Bist Du sicher, dass Du beim Laden der Texturen auch wirklich MIP-Maps erzeugst? Sonst bringt der MIP-Map-Filter natürlich nichts.

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

3

31.05.2004, 17:03

Irgendwie kapier ich deine Frage nicht ganz. Was meinst du mit "Wellen" und sprichtst du von einem bestimmten Spiel oder was für Level meinst du? ???
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

4

31.05.2004, 18:03

wahrscheinlich meint er das nicht, aber wenn das ein hügeliges level ist, dann klingt das für mich so, dass die wellen die abgeschnittenen hügel sind, die durch die far-clipping ebene entstehen.
falls das so sein sollte:
z.b. nebel einfügen...
aber vermtl. hab ich das problem nicht richtig verstanden ;)
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

Anonymous

unregistriert

5

31.05.2004, 18:17

das der texturfilter funktioniert seh ich, ist viel "weicher" alles, allerdings sieht man die stufen wo das anfängt umso größer der level ist:
scharf - weniger scharf - schwimmend

bei den linien:
ich mein wenn ne gerade linie zwischen 2 texturen bei einen objekt sind,
zum beispiel wiese<->mauer.
und dann weiter weg geh dann ist etwas zackig, und noch weiter und dann wirds umso zackiger:

so hier:

Wand
/I_/I_/I_/I_/I_/I_/I_/I_
Wiese

also Treppenartig .

und das bei geraden trennlinien zwischen den texturen bei objekten
bei einer großen skalierung ab 0.6 sichtbar, ab 0.9 unmöglich und ab 1.5 alles zick-zack

wenn ich nach ran geh, wirds umso näher umso sauberer und glatter.
level sind von allen möglichen quellen.
hab die farclipplane weit genug.

thx für ursachemöglichkeiten

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

6

31.05.2004, 19:31

Kannst du vielleicht mal Screenshots davon machen?
Mozilla Firefox
The Browser - reloaded

Anonymous

unregistriert

7

31.05.2004, 20:34

das rot eingekreiste is normalerweise gerade wenn man dran ist oder bei kleineren skalierungen, das hier ist jetzt eine normalskalierung von 1.0f.
die ecken bewegen sich auch wenn der spieler sich bewegt und werden mal größer und mal kleiner je nach nähe.

beim ersten bild sieht man zum beispiel auch dass ein stück der brücke da fehlt und mal da ist, mal weg das letzte ende der brücke.

die verbindungen der burgmauern wackeln und man sieht die detailstufen der texturrenderung.

mit all den kram hab ich bei ner mini-skalierung aber keine probleme.
aber bei nromal oder groß schon :-(


(Link)


(Link)


(Link)

8

31.05.2004, 21:21

Das ist kein Filterproblem. Sondern ein Problem das vieleicht vom Z-Buffer her rühren könnte. Benutzt du einen 32Bit oder 16Bit Z-Buffer? Es könnte hier vieleicht eine ungenauigkeit vorliegen die mit zunehmender Weite immer größer wird. Auch das ein oder andere Spiel lit früher an solchen Problemen weil sie nur einen 16Z-Buffer verwendet haben.

Das ist jetzt nur eine Annahme. Es könnte sich auch um einige kleine Fehler bei der Berechnung der Level handeln. Z.B. könnte es sein das du den ein oder anderen Vertex falsch berechnest oder du ein stück zu weit aus dem Vertex Buffer liest. In Kombination durch die geringe Ausflösung des Z-Buffer könnte es zu solchen Fehlern kommen.

Eine dritte Annahme ist, das deine Graka Probleme macht. Im Rahmen eines anderen Threads wurde gesagt das die Graka bei zunehmender Hitze Objekte Falsch berechnet. Ist aber hier eher unwahrscheinlicher, da es die Fehler doch sehr Regelmässig sind. Daher denke ich das hier ein Algorithmusproblem vorliegt.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

9

31.05.2004, 21:44

Ahaaaa :huhu: , Der Z-Buffer wars. Bei 32 Bit gehts.

D3DFMT_D16 // Eckenproblem

D3DFMT_D32 // Absturz bei Initialisierung, keine Ahnung warum
D3DFMT_D24X4S4 // Absturz bei Initialisierung, keine Ahnung warum

D3DFMT_D24X8 // alles ok
D3DFMT_D24S8 // alles ok

Muss ich bei den letzten beiden irgendwas umstellen und wird das von allen Grafikkarten unterstützt?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

31.05.2004, 22:25

Alle modernen Grafikkarten unterstützen D24S8.
Das wirkliche Problem liegt aber wahrscheinlich bei Deiner Projektionsmatrix.
Zeig mir mal den Code, wo Du die erzeugst.
Wenn Du dort nämlich schlechte Werte für Near- und Far-Clipping-Plane nimmst, verschenkst Du sehr viel Genauigkeit.
Wahrscheinlich hast Du Werte wie 0.1 für Near und 1000.0 für Far...
Besser ist 1.0 für Near und 250 für Far oder so, je nach Größe der Levels.
Die Z-Buffer-Genauigkeit nimmt nämlich sehr schnell ab. Bei solchen Werten verschenkt man sehr viel davon.

Werbeanzeige