Heightmap probleme

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sir Dan

Betreff: Heightmap probleme

BeitragMo, Aug 29, 2005 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich weiß, dass das Thema schon 1000 mal behandelt wurde, aber es will einfach nicht klappen.
Zuerst suche ich ein gescheiten heightmap editor. Die die ich bis jetzt hatte, haben kantige ergebnisse erzeugt. Mit kantig meine ich, dass die ganze map aus Stufen besteht und überall zacken aus dem Boden ragen.

Zweitens gibt es wenn es sich mit einer plane überlappt hässliche Flackerer. Mit einem höheren LoD hat es nicht geklappt (bin sogar bis auf Terraindetail 10000 gegangen)

Ich hoffe ihr könnt mir helfen.
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Xaron

Betreff: Re: Heightmap probleme

BeitragMo, Aug 29, 2005 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Sir Dan hat Folgendes geschrieben:
Zweitens gibt es wenn es sich mit einer plane überlappt hässliche Flackerer. Mit einem höheren LoD hat es nicht geklappt (bin sogar bis auf Terraindetail 10000 gegangen)


Hi!

Hast Du es schon mal mit EntityOrder probiert? Du gibst dem Terrain die Nummer 0 und der Plane die Nummer 1 (oder war's andersrum? *kopfkratz*), und schon ist Schluß mit dem Geflacker.
Das Geflacker basiert übrigens auf Ungenauigkeiten im Z-Buffer. Alternativ kannst Du die Plane natürlich auch ein kleines Stückchen tiefer als das Terrain setzen.

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

BlitzBasic303

Betreff: RE:

BeitragMo, Aug 29, 2005 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Flackern liegt daran das Blitz nicht weiss was nach oben gehört, Heightmap oder Plane.
Tip: Einfach die Plane etwas weiter höher oder tiefer machen...



EDIT: Mist, War zu Lahm...

Sir Dan

BeitragMo, Aug 29, 2005 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

mit entityorder hab ich es schon versucht, dann sieht man aber entweder das Wasser(plane) nicht oder eben nicht das Terrain.
Hier mal ein Beispiel. Ich will ein Teich erstellen (Bin an meinem Laptop, kann nicht mit dieser Maus umgehen ^^):
user posted image


edit: Sehe gerade, dass es doch sehr undeutlich ist^^
Legende:

Das gekrackel in der Mitte : "Hier flackert´s"
Der blaue Strich : Wasser(plane)
Der schwarze Bogen : Das Terrain
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Aug 30, 2005 2:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn zwei Poligone sehr flach (Parallel) verlaufen, dann flackerts eben. nimm bei solchen Überlapungen einen größeren Einstigswinkel ins Wasser. Das Problem habe ich bei jedem Spiel mal hier und da gesehen. Letztens bei Doom3. Die Treppeneffeckte kannst du beseitigen wenn du der Highmap einen Blur (Weichzeichner) verpasst. Dann läuft auch der Code wesentlich schneller (Warum weiß kein Mensch).
 

Dreamora

BeitragDi, Aug 30, 2005 3:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch.
Der grund ist ganz einfach: Weil er bei weichzeichnen viel weniger interpolieren muss (die vertices werden ja beim näherkommen langsam an ihre endgültige position angeglichen) und bei weichen heightmaps ist diese distanz im schnitt kleiner als bei "treppen-terrains"
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Sir Dan

BeitragDi, Aug 30, 2005 8:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Das mit dem flackern hat geklappt. Vielen Dank Very Happy
Aber mein erstes Problem besteht noch immer ich suche einen Heightmapeditor,
...der Weichzeichnet
...bei dem man wenigstens etwas das Ergebniss beeinflussen kann.
...was möglichst Freeware oder shareware ist.

Hab bis jetzt 3 Stück probiert, haben alle nur Stufen erzeugt
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Eclipse

BeitragDi, Aug 30, 2005 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.gimp.org/windows/

ist zwar kein heightmap-editor kann aber alles was du brauchst
 

E. Urbach

ehemals "Basicprogger"

BeitragDi, Aug 30, 2005 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest dir ja einen programmieren.
Is ja nicht besonders schwer, oder?
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

Sir Dan

BeitragMi, Aug 31, 2005 1:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

danke erstmal für die Antworten. Ich hab mir jetzt ein kleinen Editor geproggt, der meine Probleme löst. Vielen Dank für die Tips!

MfG Sirdan
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.
 

FBI-blitz

BeitragMi, Aug 31, 2005 6:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest de nEditor ja hier auch veröffentlichen Very Happy
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

Sir Dan

BeitragMi, Aug 31, 2005 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

kann ich ja machen, sobald ich ihn etwas Benutzerfreundlicher gemacht habe. Im Moment muss man jeden Vertex via input auf die gewünschte höhe bringen. Ich bastel aber gerade an einem Knetverfahren. Dert Exporter ist aber schon fertig :
BlitzBasic: [AUSKLAPPEN]

;ziel = Pfad+Name der Heightmap; hm = Terrain, das gespeichert werden soll
Function createheightmap(ziel$,hm)
Local g=TerrainSize(hm)
Local gr,kl,div
Local image = CreateImage(g,g)
SetBuffer ImageBuffer(image)
ScaleEntity hm,1,255,1
For z = 0 To g-1
For x = 0 To g-1
map(x,z) = TerrainY(hm,x,g,z)
If map(x,z) > gr gr = map(x,z)
If map(x,z) < kl kl = map(x,z)
Next
Next
div = 256-(gr-kl)
ScaleEntity hm,1,div,1
LockBuffer ImageBuffer(image)
For z = 0 To g-1
For x = 0 To g-1
col=255*$1000000+map(x,z)*$10000+map(x,z)*$100+map(x,z)
WritePixelFast(x,z,col)
Next
Next
UnlockBuffer ImageBuffer(image)
SetBuffer BackBuffer()
SaveImage(image,ziel+\".bmp\")
End Function

Das ganze hab ich noch nicht ausführlich getestet, sollt aber funktionieren.
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group