2009-05-29 7 views
11

Ich beende einen 3D Planet mit ROAM (kontinuierliche Detailgenauigkeit).CLOD Planet Wide Texturing in OpenGL

Mein Ziel ist es nun, eine gute Qualität mit Texturen zu erzielen.

Ich versuche einen Weg zu finden, ein Tiling-System (kleine gute Texturen kombiniert) zu verwenden, aber in gewisser Weise kann ich mein CLOD-Mesh nutzen.

Aktuelle Algorithmen (von dem, was ich gefunden habe) mit diesen Tiling-Systemen produzieren eine riesige Textur und dann direkt anwenden. Das ist nicht, was ich will ... der Planet ist sehr groß und ich will mehr Kraft als einfach die Texturgröße zu erhöhen.

Gibt es eine bekannte Algorithmus/OpenGL-Funktion für diese Art von Zeug?

Ich weiß nicht viel über Shader, aber ist es möglich, einen zu erstellen, der nur ein Objekt malt ... ich meine, nicht die Texcoords, sondern die richtige Farbe für jedes Pixel (nicht Vertex) des Mesh?

PS: Meine Welt gebaut wird Perlin Noise mit ... so kann ich die Höhe in jedem Weltpunkt (Höhenkarte mit unendlicher Auflösung) erhalten

+2

ehrfürchtige Frage, leider habe ich eine Weile keine Stimmen mehr – dss539

+1

Pixel-Shader machen, was Sie wollen: Berechnen Sie für jedes Pixel, welche Farbe es haben soll. Die Shader-Sprache hat einige strenge Einschränkungen, aber Aktionen wie "Punkt-Produkt" und "Suche in 1d/2d/3D-Karte" sind Primitive. – pjc50

+0

Was genau ist dein Problem? - Sie haben keine (u, v) Texturkoordinate und möchten etwas im laufenden Betrieb erzeugen? - Sie möchten, dass Ihre Textur ein Detail hinzufügt, wenn Sie das Bild vergrößern –

Antwort

2

Sie Lärm 3D Perlin für das Gelände verwendet haben, warum nicht erzeugen die Textur auch? Im Allgemeinen verwenden Programme wie Terragen, Vistapro und dergleichen die Höhe, um zufällig einen Farbbereich aus der Palette auszuwählen, diese Farbe basierend auf der Neigung zu modifizieren und vielleicht Details aus kleineren Texturen basierend auf Neigung und Höhe hinzuzufügen. In Ihrem Fall könnte die Entfernung auch Details ändern. In diesem Fall würde 2d Perlin Noise gut für Detail Textur funktionieren.

Haben Sie die Heightmap überhaupt verändert? So etwas wie ein Ozean wäre mit reinem 3D-Perlin-Rauschen schwer zu erreichen, aber alles unter einer bestimmten Höhe abzuflachen und eine schöne algorithmische Ozeantextur (richtig abgestimmtes 2d-Perlin-Rauschen mit Transparenz unterhalb eines bestimmten Pegels) würde gut aussehen.

+0

Können Sie mehr Informationen zu Ihrem zweiten Satz geben? Jede Probe oder Verbindung auf dem algorithmischen Ozean mit Perlin Noise? Hauptsächlich, wie es mit Lichtern umgehen würde ... – fabiopedrosa

+0

Nun, sieh dir diese Folie an. (http://www.noisemachine.com/talk1/9.html) Perlin demonstriert Stoff, aber die Operationen, die er durchführt, um die Fasern zu trennen, würden schönes Wasser ergeben, besonders wenn Sie mit der Spekularität vorsichtig waren. Was er zu Beginn dieser Präsentation auf der Marmorvase getan hat, würde sehr gut für einen fremdartigen Ozean funktionieren. Ich denke, Slide 22 ist das Beste für Wasser - nur eine Summe des absoluten Wertes einer Reihe von Aufrufen der Rauschfunktion. –