Problem mit 3 dimensionalen Texturen (für Terrains)



  • Mhh, meine 3D Engine kann zwar MultiTextureing, aber eignet sich das alleine denn gut für Terrains? Ich meine, in Spielen wie die Sims2 z.B. kann man den Rasen editieren, d.h. also, dass jedes Vertex über die Information einer beliebigen Texture verfügt. Ich dachte, dafür liesen sich 3D Texturen einsetzten. Also wenn nicht damit wie dann? Wie funktionieren denn Texture arrays? Die PDF Datei hat mir nicht so sehr viel geholfen. Wie sähe denn sowas in OpenGL oder Direct3D9 aus?



  • Schau doch mal in die Spezifikation von EXT_texture_array.



  • Also mal abgesehen von den anderen Tips hier, wie kommst du eig drauf das sich die Tiefe auch halbiert? Die gibt ja imerhin die Anzahl der hintereinanderliegenden Texturen an, würde die Tiefer verkleienrt werden dann hätetst du ja automatisch weniger Texturen hintereinander, oder sehe ich da was total falsch?



  • wie kommst du eig drauf das sich die Tiefe auch halbiert?

    Weil es da steht und anders keinen Sinn ergaebe.


  • Mod

    hellihjb schrieb:

    wie kommst du eig drauf das sich die Tiefe auch halbiert?

    Weil es da steht und anders keinen Sinn ergaebe.

    fuer viele dinge wuerde es sinn ergeben, was dieser thread schon beweist 😉

    aber man kann es auch texture-array nennen 🤡



  • aber man kann es auch texture-array nennen 🤡

    Man sollte es aber auf keinen Fall Mipmapping nennen :p

    Wenn man 2D-Texturen verwendet wundert man sich ja auch nicht, dass die Mipmap-Stufe in beide Dimensionen kleiner wird
    (auch wenn es anders manchmal durchaus sinnvoll waere)



  • hellihjb schrieb:

    wie kommst du eig drauf das sich die Tiefe auch halbiert?

    Weil es da steht und anders keinen Sinn ergaebe.

    Naja wenn man wie ich, und Lukas wohl auch, davon ausgeht das die tiefe eine ganz andere bedeutung hat dann macht es schon sinn. Ich sehe die tiefe der Textur einfach als Array an. Die Tatsache das es anders ist macht wohl auch das Rechnen mit der Tiefe sinnlos, da wäre man wohl besser dran man macht nen richtiges Array und interpoliert damit.



  • Auch in dem Spiel "FarCry" ist der Übergang von Sand zu Grass irgendwie mit Texture Arrays oder sowas gemacht. Mit Multitexturing lässt sich das nicht vernünfitg lösen. Im "Sandbox Level Editor" kann man pro Dreieck die texture ändern und der Übergang wird automatisch dargestellt.

    Wie funktioniert das denn mit Texture arrays? In OpenGL oder Direct3D9?


  • Mod

    als farcry gemacht wurde, gab es glaube ich noch keine texture arrays, das spiel laeuft ja noch auf geforce4 karten, da gab es gerade mal pixelshader 1.4



  • Mit Multitexturing lässt sich das nicht vernünfitg lösen

    TextureArrays sind doch effektiv nur ein Automatismus.
    Du kannst genau so gut in mehreren Passes zwischen den (im einfachsten Fall jeweils zwei) Textur-Ebenenen interpolieren und per Alpha-Blending mit den bereits existierenden Ebenen verrechnen.

    Wie funktioniert das denn mit Texture arrays?

    In der Spec steht doch alles drin.
    Eine dritte Texturkoordinate (die zb aus einer geeigneten "Alpha"-Map kommt) definiert, welche Texturebene benutzt wird (sowie die Gewichtung zwischen zwei Ebenen).


Anmelden zum Antworten