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

Aktuelle Zeit: Mo Jul 21, 2025 20:00

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Render to Texture -> File
BeitragVerfasst: Mo Jan 20, 2003 16:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

kann ich irgendwie eine Generierte Textur (mit RenderToTexture Generier) als datei speichern???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 21, 2003 09:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Naja, isses überhaupt notwendig? Wenn du z.B. einen Screenshot machen willst, kanste ja eigentlich gleich in ein Bitmap rendern und dieses abspeichern. Geht irgendwie, wie genau weiss ich jetzt nicht. Hab' nur 'n Beispiel dazu bei GLScene gesehen...

_________________
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 Jan 21, 2003 13:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

mein "plan" dahinter ist folgender *g*

In meinem LevelEditor kann man sich Materialien für die Objekte erstellen... Diese Materialien sollen auch mit MultiTexturen belegt werden können.

Da aber wohl die meisten grafikKarten nur 2-4 MultiTexturen unterstützen will ich die Textur im Editor einfach mit normalem Blending erstellen (aus z.B. 10 Verschiedenen Texturen), und das halt in eine Textur rendern... diese Textur müßte ich dann nur irgendwie Speichern, so das ich sie im fertigen Spiel benutzen kann, ohne das ich jedesmal erst die 10 Texturen miteinenander "überblenden" muß.. :)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 21, 2003 13:33 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Naja, wie gesagt: Render die 10 Texturen in eine Bitmap und verwende diese als Ergebnis-Textur. Ich werd' mich mal umschauen und schlau machen, wie das Rendern in Bitmaps funktioniert. Wenn ich etwas näheres weis, werd' ich's Dir sagen!

_________________
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: Re: Render to Texture -> File
BeitragVerfasst: Di Jan 21, 2003 15:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zitat:
kann ich irgendwie eine Generierte Textur (mit RenderToTexture Generier) als datei speichern???


Schau dich mal auf folgender Seite um : <a href='http://delphigl.cfxweb.net' target='_blank'>http://delphigl.cfxweb.net</a> (unter der Rubrik Projects). Dort gibts die glBMP-Library, eine der best ausgestattetsten Delphi-LIBs zum Laden und Speichern von Texturen.
Selbst wenn du diese Bibliothek nicht benutzen willst, so kannst du dir wenigstens die Speicherroutinen für deine Texturen aus dem Quellcode "klauen".

BTW : Ich bezweifle, das du jemals 10 Texturen auf eine Fläche/Objekt legen wirst. aber falls doch hier ein kleiner Tipp, dazu aber erstmal ein kleines Beispiel :
- TMU0 : Basistextur
- TMU1 : Lightmap
- TMU2 : Detail-Textur
- TMU3 : Decal-Textur (z.B. Einschusslöcher, Blutflecken)

In diesem Beispiel brauchst du also 4 TMUs (GeForce 3/4 z.B.).Stell also einfach fest, wie viele TMUs die Graka hat und schreib dann verschiedene Renderpfade (ist in der Spieleprogrammierung so üblich) :
- Einen Pfad für Karten mit 4 oder mehr TMUs, in dem 4 TMUs genutzt werden und die Geometrie nur einmal gerendert wird
- Einen Pfad für Karten mit 2 TMUs, in dem die Geometrie zweimal gerendert und mittels Blending kombiniert wird.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 13, 2003 23:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

steh grad wieder/immernoch vor dem problem...

Die Idee mit dem SaveToFile von glBmp hab ich ja in meiner Unit übernommen, nur da is ein großer denkfehler drin.. ;) (bzw hab ich grad garkeine ahnung wofür das SaveToFile von glBMP/Meiner Unit gut sein soll *g*)

und zwar, wenn ich etwas mit RenderToTexture in ne Texturspeicher.. dann ist der Speicher nur auf der GrafikKarte... was aber in der SaveToFile - Procedure gemacht wird, ist das aus dem Arbeitspeicher zu speichern...

Das einzige was man mit SaveToFile Speichern kann sind Texturen die man von HDD/Reseource geladen hat... :(

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 14, 2003 06:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
SOS meinte sicherlich die Methode SaveScreen. Diese Lädt nähmlich den aktuellen Bilddschirm in den Speicher der Klasse!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 14, 2003 11:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Lossy eX hat geschrieben:
SOS meinte sicherlich die Methode SaveScreen. Diese Lädt nähmlich den aktuellen Bilddschirm in den Speicher der Klasse!

Ganz genau.Das ist die Prozedur die ich damit gemeint hab.Dahinter steckt allerdings noch ne Funktion namens SaveGLBuffer, die den Bildschirm via glReadPixels ausliest und in ne Datei speichert.

Um jetzt deine erstellte Textur auf die Platte zu speichern, tust du nichts anderes als den glViewport auf die Größe deiner Textur zu setzen, in den glOrtho-Modus schalten und die Textur auf den kompletten Viewport zeichnen.Dann kannst du denn Quelltext aus oben erwähnter Prozedur nutzen um den aktuellen Viewport (der dann deine Textur enthält) zu speichern.

P.S. : Kleiner Hinweis wgn. der Page in der SIG : Mit Mozilla funzt die Navigation nicht, und macht deine Page damit recht unbrauchbar...

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 14, 2003 23:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich war so frei den Teil bzgl. Ayas Homepage zu splitten und in nen extra Thread im OT zu verlagern, damit die Sache nicht vom eigentlichen Thema abweicht :
<a href='http://www.phobeus.de/hosting/dgl/forum/index.php?act=ST&f=4&t=949&st=0&#entry8348' target='_blank'>http://www.phobeus.de/hosting/dgl/forum/in...st=0&#entry8348</a>

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


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 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.020s | 15 Queries | GZIP : On ]