2D-Texturen sind ja ganz logisch, wofür man die braucht. Aber aus was ich bisher nicht schlaugeworden bin, sind 1D und 3D Texturen. Wozu benötigt man die bzw. wozu setzt man die ein und kann die Verwenden. Und was für ominöse Texturen sind das überhaupt?
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Eindimensionale Textur: Genau wie eine 2D-Textur, bloß das die Höhe hier =1 ist.Damit kann man neben einigen Effekten wie z.B. Cleshading einfache Texturbänder zeichnen, deren Darstellung sich auf einer Ebene einfach wiederholt.
Dreidimensionale Textur: Naja, wie der Name vermuten lässt sind das volumentrische Texturen.Quasi sehr viele "hintereinander" gelegte 2D-Texturen.Damit lassen sich sehr viele interessante volumetrische Effekte wie z.B. Nebel oder echte, dreidimensionale Explosionen realisieren. Auch kann man mittels einer 3D-Textur ganz einfach PerPixel-Lighting realisieren.Dazu gibts ein sehr gutes Beispiel auf <a href='http://www.delphi3d.net' target='_blank'>http://www.delphi3d.net</a>.
Nachteile von 3D-Texturen : Erst ab GF3 hardwarebeschleunigt (GF2 und kleiner könnens nur per Software, und zudem recht langsam), sehr speicherintensiv, da ne 512x512x512 3D-Textur logischerweise 512x soviel Speicher verbraucht wie ne entsprechende 2D-Textur (ohne Kompression!).Außerdem sind solche Texturen recht schwer zu erstellen, denn mir iss bis jetzt noch kein Bildbearbeitungsprogramm bekannt mit dem man in drei Dimensionen zeichnen kann.
1D Texturen sind Texturen, deren inhalt eine einzige linie ist. wenn du z.b. eine gradientkurve in eine textur abgelegt hast und sie dann vergrössert auf ein polygon legen willst, dann langt dir theoretisch eine 1D Textur.... Bei 3D Texturen kenn ich mich nicht weiter aus....
Somit wäre das auch geklärt. Besten Dank. Das mit den 3D-Texturen ist mir zwar mal durch den Kopf gegangen, jedoch hab' ich gedacht, sowas macht doch Keiner aufgrund des imensen Mehraufwandes an Resourcen. Aber da hab' ich mich wohl getäuscht.
Die 1D-Textur kann man demnach auch für diverse Effekte als Resourcen-Sparen verwenden. Hmm... muss ich im Hinterkopf behalten.
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wie ich ja schon gesagt hab, gibts bereits seit der GeForce3 Hardwareunterstützung für 3D-Texturen.Allerdings sind selbst 128MByte Grafikkartenspeicher zu wenig um 3D-Texturen auf großem Feld zu nutzen.Selbst bei 256 MByte wird man diese nur für einige wenige Effekte nutzen können.(Zumal die ersten Grakas mit 256MByte wie die Radeon9800Pro weit über 500€ kosten, und sich somit nicht als Grundlage legen lassen).
Was in meinen Augen auch problematisch ist, ist die Erstellung solcher Texturen von Hand.Nebelschwaden oder Beleuchtungstexturen kann man ja per Formel berechnen, Explosionstexturen grade so auch noch, aber alles andere ist in meinen Augen ne sehr schwierige Sache.
Registriert: Mi Aug 28, 2002 19:27 Beiträge: 568 Wohnort: Chemnitz / Sachsen
ich denke aber 3d-texturen, obwohl von etwas älterer hardware bestenfalls per software unterstützt, ist eigentlich eine super sache.
heutzutage ist speicher eigentlich kein großes problem mehr (jeder annehmbare komplett-pc hat heutzutage einfach ma mindestens 256 mb ram) und naja die neuen grakas haben auch 128mb ram und daher würde ich tippen, dass diese texturen in den nächsten zeiten doch evtl. an bedeutung gewinnen werden.
@grafikprog zum erstellen einer 3d-textur:
soweit ich weis gibt es da auch kein prog, doch man kann doch die textuturen auch dynamisch erzeugen und damit auch perfekte dynamische effekte (->ligthing, fog, explosionen, hologramme, etc.) basteln.
ich glaube kaum, dass sich 3D Texturen in nächster zeit durchsetzen werden, denn: 512*512*512*4, entspräche einer 3D textur mit Auflösung 512*512*512 und RGBA. Wenn du das nun ausrechnsest, kommtst du auf schmuckvolle 512MByte - das passt in keinen Grafikkartenspeicher... Mipmaps gar nicht mitberechnet.... Das wird erstmal höchstens für kleinkrams verwendet. Das kommt frühestens dann richtig zum Einsatz bei 64 Bit Systemen und auch erst dann, wenn 4GByte Ram auf Grafikkarten nix exotisches mehr ist - vorher dürfte das Thema bei der Rechnung ziemlich unintressant sein... Bei 64*64*64*4 Texturen siehts natürlich ersmal besser aus, die schlucken nur 1Mbyte ohne Mipmaps, aber auch die werden vorerst wohl erstmal ein sehr beschränktes dasein fristen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
In folgendem Beispiel wird ne 3D-Textur zur Beleuchtung eines Raumes genutzt : <a href='http://www.delphi3d.net/download/pointatt.zip' target='_blank'>http://www.delphi3d.net/download/pointatt.zip</a>
Sieht gut aus, und ist v.a. viel leichter zu implementieren als z.B. Lightmapping.Allerdings verkommt das Ganze auf Karten ohne HW-Unterstützung für 3D-Texturen (alles < GF3) zur Diashow.
Hier gibts noch ne Demo von nVidia selbst, in der ein Objekt mit ner prozeduale erzeugten 3D-Textur dargestellt wird : <a href='http://developer.nvidia.com/view.asp?IO=proctex3d' target='_blank'>http://developer.nvidia.com/view.asp?IO=proctex3d</a>
Und hier noch ne Demo (auch von nVidia), in der ne volumetrische Textur (also ne 3D-Textur) zur Realisierung von Impostors (erweiterte Version des Billboardings) genutzt wird : <a href='http://developer.nvidia.com/view.asp?IO=voltex_impostors' target='_blank'>http://developer.nvidia.com/view.asp?IO=vo...oltex_impostors</a>
Danke! Aber Du hast Recht. Ich hab's unter 'ner GF2 MX laufen lassen. Schaut zwar nett aus, aber Dia-Show ist etwas untertrieben Heut abend mal auf 'ner GF4 anschaun.
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Ich glaube 1D-Texturen dürften ohnehin hinreichend erklärt sein (die sind vor allem dann praktisch, wenn einfache Farbinterpolation zwischen zwei Punkten nicht ausreicht) - mit 1D-Texturen kannst du z.B. sehr einfach Heightfields einfärben, indem du die Texturkoordinate des jeweiligen Punktes nach dessen Höhe auf eine Textur setzt, die z.B. von blau auf grün, dann grau und schließlich weiß übergeht. Noch eine 2D-Detailtextur drauf, und du hast eine tolle Landschaft, OHNE dass du eine riesige Textur dazu brauchst, die für die korrekte Färbung der eintelnen Patches notwendig ist.
3D-Texturen sind (zur Zeit) insbesondere dann praktisch, wenn man Strukturen (z.B. Holz) darstellen möchte, dann kann setzt man einfach die Texturkoordinaten auf die lokalen Modellkoordinaten, und die Textur wird immer richtig dargestellt - AUCH dann, wenn man das Objekt verändert (z.B. aus einem Zylinder langsam einen Gegenstand "schnitzt"). Wie die meisten sicherlich schon bemerkt haben, kann es eine ziemliche Seuche sein, für ein beliebiges 3D-Objekt 2D-Texturkoordinaten zu berechnen, bei denen Polygonkanten auch noch nahtlos ineinander übergehen.
Bei Mcad 2.0 ist übrigens ein (simpler) 3D-Texturgenerator dabei, ich habe damit mal ein kleines Demoprogramm zusammengeklickt und ins Uploadcenter hochgeladen (leider habe ich vergessen, die Nomenklatur einzuhalten, wenn also jemand Tex3D.zip in tex3d_mars.zip umbenennen könnte - ich meine mir ist es ja egal, nur der Vollständigkeit halber). Hier ist der direkte Link drauf: <a href='http://www.delphigl.com/upload/Tex3D.zip' target='_blank'>http://www.delphigl.com/upload/Tex3D.zip</a>
Damit sollte man gut sehen können, dass Strukturtexturen mit nahtlosen Übergängen mittels einer 3D-Textur höchst einfach zu realisieren sind. Übrigens sind 3D-Texturen auch auf einer Geforce 4MX saulangsam, da nicht von der Hardware unterstützt.
Viel Spass beim Programmieren Mars <a href='http://mcad.delphigl.com' target='_blank'>http://mcad.delphigl.com</a>
Mitglieder in diesem Forum: 0 Mitglieder und 13 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.