2 heighmaps => 1 terrain



  • Im NVIDIA SDK gibt es ein Bespiel Snow-Accumulation. Ist vielleicht ganz interessant.



  • Thx, werde mal das mit der volumetexture versuchen.

    btw. kennt einer von auch ne seite wo die gebräuchlisten GPUs mit featurs aufgelistet sind? Im beispiel von life verwenden die 2 tex2D nächmlich die selbe TEXCOORD, was erst am ps_2_0 erlaubt ist.. (min. karte für meinen Terrain Scene Manager soll ne FX 5200 sein, die kann zwar 2.0 aber wäre interssant zu sehen ab wann das bei nvidia/ati dabei ist)

    Im NVIDIA SDK gibt es ein Bespiel Snow-Accumulation. Ist vielleicht ganz interessant.

    Ja, hab ich schon gefunden, aber nachdem das teil auf meinem test-pc mit sage und schreibe 4fps lief hab ich mir source gar nicht erst angesehen.. 😃 🤡 (ich will nicht grad ne 7900GTX als min. karte vorraussetzten damit es halbwegs ruckelfrei läuft 😉 )



  • hm.. wusste ich garnicht, da ich bei meinem splatting eh unterschiedliche textureCoords benutze, weil die texturen unterschiedlich groß sind..

    Aber rapsos volumetexture hört sich aufjedenfall ganz interessant an. Werd ich mir vielleicht auch mal bei gelegenheit angucken 😉



  • Mach das, hat mich 10min gekostet funktioniert super 🙂 (ok 20 bis die morphing shader umgebaut waren und ich rausgefunden habe wie ich ne 3D textur in TextureUnitState packen kann - zählt aber zu 'an OGRE schrauben' nicht 'volume texture einbauen' 🤡 )
    Es ging so einfach dass ich jetzt auch gleich noch die welt damit zu texturiere 😃
    Hatte vorher ja ne terrain texture in page größe, die beim startup, abhängig von der heighmap, generiert wurde. Jetzt hab ich ein dds file mit den 5 welt texturen und 3 snow texturen und je nachdem wie y-welt bzw. y-snow wähle ich den entsprechnden w wert. Spart ne schicht beim splatting und ne menge zeit beim starten 🙂
    Das einzige was mir noch zu grübeln gibt
    Mein dds bestes aus folgenden slices:

    1. World level 1
    2. Snow level 1
    3. World level 2
    4. Snow level 1
      ..
      n-3) World level 5
      n-2) Snow level 1
      n-1) Snow level 2
      n) Snow level 3

    Die erste snow level textur ist also nach jedem world level einmal da, da ich den übergang brauche. Hab aber igendwie das gefühl, dass das verschwendeter speicher ist, man es also vermeiden könnte... weis aber nicht wirlich wie 🤡



  • Ok, das mit der welt-textur klappt doch nicht so einfach... habe eben LOD wieder eingeschaltet und das sieht nicht wirklich vorteihalft aus, wenn sie die textur eines berges, der umgeben von flachland ist, vom saftig grün, über braun bis zum eigentlich grau je nach entfernung der cam verändert... muß wohl doch noch etwas mehr zeit rein stecken.. 😕



  • Könntest auch mal versuchen einfach deine höhenwerte in eine textur codieren und diese dann im ps zu setzen. Dann haste im Pixelshader die genauen y-Werte und nicht die LOD verfälschten und kannst entsprechend dein tex3D (gibts das? ;)) mit den richtigen y-Werten machen. Damit wär dann deine texturierung unabhängig vom LOD..
    Dabei sollte das terrain aber natürlich nicht zu groß werden, da sonst die textur zu fett wird 😉

    btw. interpolierst du zwischen zwei vertices zur zeit einfach die farbe oder korrekterweise den y-Wert (oder wie meinste das mit von grün nach grau >.<)?



  • Könntest auch mal versuchen einfach deine höhenwerte in eine textur codieren und diese dann im ps zu setzen. Dann haste im Pixelshader die genauen y-Werte und nicht die LOD verfälschten und kannst entsprechend dein tex3D (gibts das? ) mit den richtigen y-Werten machen. Damit wär dann deine texturierung unabhängig vom LOD..

    hmm.. klingt nach nem interessanten ansatzt, muß es mir mal etwas darüber nachdenken 🤡

    btw. interpolierst du zwischen zwei vertices zur zeit einfach die farbe oder korrekterweise den y-Wert (oder wie meinste das mit von grün nach grau >.<)?

    Ich interpoliere eigentlich gar nichts. 🤡 Komme von grau auf grün weil der index buffer immer mehr vertixes vom berg referenziert. Wenn die cam weit oben steht, sehe ich erst mal nur grün, da der index buffer auf vertixes in der ebene steht. Zoome ich näher ran ändert sich die textur jetzt plötzlich primtive-weise (was schrecklich aussieht), da jetzt immer mehr vertixes von berg im index buffer sind.
    Mit ner größen textur über die ganze page sieht das sehr viel 'weicher' aus, da die textur ja feststeht und sie nur 'scaliert' wird, wenn der index buffer die primtive größe ändert.



  • wenn ich das richtig verstehe, siehste wenn die cam weit oben steht den berg garnicht und somit ist alles grün und wenn du nun näher rankommst erscheint der berg langsam und die textur wird entsprechend langsam grau. Sieht das aber nicht eh scheiße aus, wenn ein berg aus dem nichts erscheint? :>



  • Sieht das aber nicht eh scheiße aus, wenn ein berg aus dem nichts erscheint? :>

    genau 😃
    Wenn ich eine textur über die ganze page lege passiert das nicht, denn das grau vom berg ist ja immer da (teil der textur) und wird einfach kleiner wenn der index buffer umliegende vertices in der ebene referenziert.
    Mit der volume textur ist das nicht der fall. Wenn der index buffer umliegende vertices referenziert, also vertices deren w koordinate genau auf 'grün' leigt, ist das ganze primitve grün, vom berg nix zu sehen 😞


  • Mod

    CMatt schrieb:

    Sieht das aber nicht eh scheiße aus, wenn ein berg aus dem nichts erscheint? :>

    genau 😃
    Wenn ich eine textur über die ganze page lege passiert das nicht, denn das grau vom berg ist ja immer da (teil der textur) und wird einfach kleiner wenn der index buffer umliegende vertices in der ebene referenziert.
    Mit der volume textur ist das nicht der fall. Wenn der index buffer umliegende vertices referenziert, also vertices deren w koordinate genau auf 'grün' leigt, ist das ganze primitve grün, vom berg nix zu sehen 😞

    das liegt daran, dass du w pro vertex machst, statt in einer texture 😉



  • ich meine, dass es doch auch unabhängig von der textur schon ein wenig merkwürdig ist, wenn in dem flachland-mesh nun (langsam) ein berg erscheint und dementsprechend künstlich aussieht (außer man ist wirklich direkt über dem peek, dann würd das falsche mesh vielleicht nicht so sehr auffallen)..



  • so jetzt hab ihr geschaft... was soll ich machen??? w pro texel???
    Wie bekomme ich das denn hin 😕
    Ich meine, meinem vertex kann ich sagen du hast jetzt nicht nur xy als tex-coord sondern xyz, aber wie sag ich ner textur und vor allem wo (ich will ja vermeiden in der textur rumzumalen 😉 )

    ch meine, dass es doch auch unabhängig von der textur schon ein wenig merkwürdig ist, wenn in dem flachland-mesh nun (langsam) ein berg erscheint und dementsprechend künstlich aussieht (außer man ist wirklich direkt über dem peek, dann würd das falsche mesh vielleicht nicht so sehr auffallen)..

    Bin offen für jede art von anderen ideen (LOD brauche ich jeden fall, weglasse ist keine option :p ) 😉 🤡



  • hmm.. je mehr ich daran rumspiele deszo mehr glaub ich das nicht index buffer sondern was anderes am dem effekt schuld ist.
    Hab mal die app auf nen server geladen mit ner map wo man es gut sehen kann:
    http://web32.net-server4.de/Release.rar
    Drück die linke maus taste und zieht sie nach oben dann kommt ihr von ner höhere braunen ebene in eine tiefere grüne und seht immer wieder diese farb-änderungen an den stellen wo der LOD algo arbeitet.. alles sehr komisch.. jemand ne idee was sein könnte 😕



  • also bei mir sieht das ganz merkwürdig aus und liegt garantiert nicht daran, dass irgendwelche vertices weggelassen werden vom LOD-Algorithmus (jedenfalls nicht direkt)..



  • hat auf der map einem hügel in ner eben ganeu so ausgehsen ab das passieren würde.. aber sobald ich diese map versucht habe, bin ich auch ins zweifeln gekommen. Wenn du mit +/+ weg zoomst sieht su was ich meine, das terrain bekommt ne einheitliche farbe und genauer je näher du kommst (lass dich nicht zu viel von der detail texture abschrecken, muß da noch etwas am DetailTile wert schreuben 😉 )
    Irgedwie kann ich mir den effekt nicht erklären.. sieht so aus als würde einer an der w kooridante von den vertices die weiter weg sind schrauben, was aber definitiv nicht passiert 😕



  • irgendwie zoomed der bissel schnell für mich 😉
    btw. wie mach schalt ich denn in wireframe-modus?

    Auch wenn ich jetzt nicht das wireframe gesehn hab, scheint der LOD algorithmus ja schon ziemlich aggresiv und haut die ganzen vertices ziemlich schnell raus (kann auch wegen textur nur so aussehn ;)). Vielleicht haste also einmal den Effekt durch die falsche y-Werte (oder w-Werte) durch LOD + noch irgend nen Fehler (das mit den Dreicken sieht schon sehr merkwürdig aus)..



  • Auch wenn ich jetzt nicht das wireframe gesehn hab, scheint der LOD algorithmus ja schon ziemlich aggresiv

    Sieht nur so aus wegen dem textur-fehlern, der LOD algo ist mir config aus diesem terrain relativ zahm 😉
    Nimm mal http://web32.net-server4.de/app.rar
    Mit W kannst in wireframe schalten und zoom habe etwas langsamer gemacht.
    Muß jetzt leider in bett da morgen wieder und am wochende nicht online.
    Wenn jemand noch irgend welche ideen hat einfach posten ich sehs mir montag an.

    Thx! 🙂



  • btw. mach das config.cfg in media/terrain auf und mach das # vor UseTriStrips weg, damit triangle strips statt triangle lists gerendert werden, das macht es schon sehr viel besser. Keine ahnung ob zufall, oder ob es was mit problem zu tun hat..

    (damit die detail texture nicht so schrecklich aussieht wenn du weit weg zoomst setzte DetailTile auf 2 oder 1, oder mach die DetailTexture=terrain_detail.jpg zeile ganz weg 😉 )



  • naja, wenn du genau hinschaust, siehste, dass die textur sich schon ändert, obwohl das mesh scheinbar gleich bleibt (also auch kein LOD unterschied), was wohl eher auf andern fehler hindeutet. Imho haste einfach irgendwo fehler in deiner textureberechnung.. Also einfach mal debugger anschmeißen 😉

    Btw. mach ich die texturierung bei mir auch vertex anhängig und somit auch LOD abhängig und bei mir sieht das nicht so aus ;). Zwar sieht man auch ein paar artefakte wenn man schnell rauszoomed, aber längst nicht so stark..


Anmelden zum Antworten