Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 15:05

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 13:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Hi Leute, mal 'ne Frage.

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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 14:19 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 14:22 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
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....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 15:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 16:08 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
3D-Texturen sind auch NOCH nicht der wirkliche Renner, IMAO werden die ersten Grakas erstmal HW-Support dafür bieten.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 16:13 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 19:22 
Offline
DGL Member
Benutzeravatar

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.

ansich eine feine sache.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 25, 2003 19:40 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2003 08:41 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Gibt's irgendwoe ein Bild oder so, wo man so 'ne 3D-Textur mal im Einsatz findet (bei Delphi3d hab' ich nix gefunden :( ) Würd' mich mal interresierren.

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2003 10:52 
Offline
DGL Member
Benutzeravatar

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>

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2003 11:16 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2003 12:49 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
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>

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 16 Queries | GZIP : On ]