hi, ich hab gerade das heightmap tutorial durchgearbeitet und irgendwie läuft es net so wie es soll ich sehe nämlich nix.
ich habe ein bmp mit einer größe von 256*256px
eine variable
Code:
const
gridsize =64;
ich verstehe nicht, was in dem tutorial mit mapsize gemeint ist, außerdem sehen meine vektoren ein wenig anders aus, was mich ohnehin noch mehr verwirrt.
im oncreate erzeuge ich meine displayliste:
Code:
hmap := glGenLists(1);
ich denke das ist sinnvoller als die heightmap bei jeden renderdurchgang zu berechnen.
Vertices[I].y:= HeightMap[X + Position[I][0], Y +Position[I][0]]
end;
DrawTriangle(0,1,3);
DrawTriangle(1,2,3)
end;
glEndList;
end;
mnerkwürdig finde ich ebenso, dass der durchlauf einmal bis gridsize und einmal bis gridsize - 1 geht, deshalb habe ich die beiden schleifen noch nicht zusammengefasst, ich könnte mir dann auch das zwischenspeichern in der variable heightmap sparen.
meine vektoren sind records (x, y, z);
naja wie gesagt, zu sehen ist nichts, auch wenn ich die 1 durch 1000 ersetze.
ich hoffe ihr könnt mir helfen und mich ein wenig aufklären, ich habe den grundgedanken verstanden, hätte es aber anders gemacht, ich steige da noch nicht ganz durch. die erste änderung zb die ich schon umgesetzt habe ist die displaylist. des weiteren würde ich die height map in einer größe von 1*1*x wobei 0<x<1 generieren, damit ich sie leicht in meine gewünschte größe skalieren kann.
vielen dank schonmal,
€: ich hab das ganze jetzt nochmal auf meine weise gemacht, erstmal ohne höheninformationen, aber ich sehe immernoch nichts, irgendwas ist da faul:
ohne nochmal ins tutorial gesehen zu haben, wird sicherlich einmal die rede von der größe des bitmaps sein und das andere die anzahl der punkte nach denen am ende die karte angezeigt wird - der rest der informationen des bitmaps geht dann verloren.. kann man so machen, ist aber nicht zwingen notwendig.
dann sind die schleifen unterschiedlich, weil im einen werden in heightmap[] in jede reichtung gridsize + 1 informationen aus dem bitmap abgelegt.
die andere schleife ist dann absichtlich anders, weil immer auch auf die nachbarn zugegriffen wird. das ist dann interessant, was an den rändern passiert, weil du keine überhängenden dreiecke erzeugen darfst: sonst greifst du ja aus deinem array heightmap heraus.
was jetzt allerdings deine wesentliche frage sein soll hab ich nicht verstanden, oder war sie das jetzt....?
naja ich habs ja jetzt selbst gemacht und es funzt soweit, aber wenn man das ganze von einer anderen seite betrachtet sind da löcher drin, warum weiß ich auch net, auf jedenfall sieht das lückenhaft aus
es sieht so aus, als wäre der tiefentest nur von vorne, am backface culling liegts nicht, das habe ich schon ausgeschaltet gehabt, ich verstehe nicht woran es liegt, von vorne, oder von oben alles schön, aber von "unten" sieht man durch die vertices durch
am anhang mal ein screenshot von dem fehler, von der anderen seite sieht es nicht so aus.
mfg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Dieses Bild sieht komisch aus und ich denke gerade bei solchen Fehlern sollten mehere verschiedene Perspektiven als Screenshots gezeigt werden, damit das Problem wirklich zu sehen ist. Ich kann beispielsweise aus dem letzten Bild nicht erkennen, was falsch ist, weil ich da nichtmal eine Heightmap erkenne.
Also wären zwei Bilder mit nur leicht nach links oder rechts verschobener Perspektive praktisch. Die kann ich dann zu einem 3D-Bild wieder zusammenfügen
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
ok ich häng hier mal das projekt an, da kann man das denke ich gut sehen. mit datei->Heightmap laden kannst du eine heightmap aus dem programmverzeichniss öffnen und dann gucken.
ich weiß nicht ob die löcher von meinem code kommen oder ob das durch äußere einflüsse verursacht wird, auf jedenfall mache ich was falsch wäre toll wenn sich das jemand mal ansieht
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Öhm... Löcher...Hmmm...
Einerseits hab ich mal im Ramen von LOD hier bei DGL was von Löchern gelesen. Weiß nicht ob es dich betrifft. Falls das Bild da oben dein Problem ist, dann seh ich maximal z-Fighting. Und das bekommst du über den Tiefenpuffer weg. Siehe Wiki zu Z-Fighting.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.