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

Aktuelle Zeit: Fr Jul 18, 2025 21:03

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



Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Rechteckige Texturen bei OpenGL1.4
BeitragVerfasst: Do Dez 14, 2006 15:55 
Offline
DGL Member
Benutzeravatar

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

gibt es eine schöne einfache methode Rechteckige Texturen bei OpenGL1.4 zu verwenden?
Da werden die Extensions: GL_ARB_texture_rectangle und GL_ARB_texture_non_power_of_two ja nicht unterstüzt...

Das einzige was mir einfällt ist, die rechteckige Textur in mehrere Quadratische aufzuteilen, aber das ist laaaaaaangsam.... :(

Aya~

PS: Kann es sein, das manchmal GL_TEXTURE_RECTANGLE_ARB funktioniert, obwohl die Extension GL_ARB_texture_rectangle nicht unterstüzt wird?!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 14, 2006 16:25 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Texture_Rectangles gibt es von ARB, EXT und NV. Mehr oder weniger sind die auch alle gleich. Bis auf, dass bei der ARB Variante die Shader besser unterstützt werden. Ich würde da auf jeden Fall nach allen 3 Extensions ausschau halten. Die werden lauf Delphi3D teilweise auch schon auf OpenGL 1.3 Karten unterstützt. Von den Konstanten etc (außer Shader) musst du sonst nichts weiter beachten.

Und sonst. Na ja. Wenn du das Bild nicht zerlegenmöchtest mach es größer und lass Teile davon unbenutzt. Da du eigentlich auch nicht zu viele Texturen hast sollte das schon fast gehen. Ist zu mindest das einfachste und schnellste. Textur erstellen mit leeren Daten füllen und für das Frame benutzt du eh schon glSubTexImage2D. Nur musst du dann mit den Koordinaten aufpassen. Aber wenn du die Textur nicht skalierst oder so was, dann sollte es auch keine Probleme mit den Rändern geben. Anderenfalls kann es zwecks Texturfilter unschöne Verläufe geben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 14, 2006 16:26 
Offline
DGL Member
Benutzeravatar

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

hab grad in dem Extension-String von dem PC der die GL_ARB_texture_rectangle Extension nicht unterstüzt dashier gefunden: "GL_EXT_texture_rectangle".. also scheint es damit dann zu gehen.

Aber, gibt es da noch mehr "abarten" von zufällig? :)

Aya~

EDIT: Gleichzeitig gepostet... :) Also ARB, EXT und NV, ja? oook danke ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 14, 2006 16:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja diese 3 Varianten gibt es.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 15, 2006 01:33 
Offline
DGL Member
Benutzeravatar

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

ich stehe grad vor einem neuen Problem mit ATI Karten..

Ich benutze im Flipbook RectangleTexturen und GLSL Shader.. funktiniert auf nVidia karten wunderbar... auf ATI Karten allerdings können rechteckige Texturen nicht im Shader verwendet werden.

Gut, für den fall das das kommt überprüfe ich ob GL_ARB_texture_non_power_of_two unterstüzt wird und benutze dann einfach das, so das auch auf ATI Karten die Shader klappen.

Jetzt hab ich aber schon 2 rechnet entdeckt, die:

- GL_EXT_texture_rectangle untersützen
- GL_ARB_texture_non_power_of_two NICHT unterstüzen
- glSlang Version 1.00
- OpenGL Version 1.5

Tja.. hier klappt dann natürlich die Shader sache nicht.. denn mit Rectangle Texturen funktioniert der Shader nicht, und mit GL_TEXTURE_2D bleibt die Textur weiß.

Jetzt kann ich zwar wie schon gesagt entweder die textur in viele kleine aufteilen, bzw einfach auf eine Quadratische vergrößern (gibt es da eigentlich nen limit? also.. 2048x2048 oder so?), aber... evtl weiß noch jemand eine möglichkeit wie ich die Shader auf ATI Karten trotzdem hinbekomme... :(

EDIT: Hab grad GL_MAX_TEXTURE_SIZE entdeckt ;)
Mach es jetzt vorrübergehend erstmal indem ich die Texturen hochrechne.. falls aber noch wer ne tolle andere idee hat, immer her damit ;)


Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 15, 2006 08:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Aya,

Rechteckige Texturen unter OpenGL 1.4 lassen sich auch problemlos mit gluBuild2DMipmaps verwenden ;)

Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 15, 2006 09:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
dj3hut1 hat geschrieben:
Rechteckige Texturen unter OpenGL 1.4 lassen sich auch problemlos mit gluBuild2DMipmaps verwenden ;)

*hust* Problemlos? Du weißt aber schon, dass er damit flüssige Videos darstellen möchte? ;-) Also da kann ich von dieser komischen glu Funktion nur abraten. Das tue ich ja selbst bei einfachen Texturen schon.

Aber ich befürchte auf ATI Grafikkarten wirst du keine andere Wahl haben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 15, 2006 09:51 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Um mal total schlau zu tun:
Auch eine 64x256er Textur ist Rechteckig. Und die sollte schon ab GL1.1 unterstützt sein. ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 15, 2006 18:46 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Ich vermute fast das du die Daten auf die Grafikkarte Streamst?
In dem Fall würde ich einfach die Daten in eine Textur kopieren die der nächst größeren POW2 Einheit entspricht, und dann per Texturkoordinaten den entsprechenden Ausschnitt zu verwenden.

Alles andere dürfte zimlich viel Performance kosten, und mir fällt jetzt spontan auch kein Problem ein was gegen die Technik oben spricht.


mfg

Speedmaster

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 16, 2006 00:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Speedmaster hat geschrieben:
In dem Fall würde ich einfach die Daten in eine Textur kopieren die der nächst größeren POW2 Einheit entspricht, und dann per Texturkoordinaten den entsprechenden Ausschnitt zu verwenden.

Das ist ja das was Lossy auch meinte, so mach ich es derzeit auch :)

Wobei, zum thema kompatibilität... müßen NPot texturen quadratisch sein, oder wird auch z.B. 512x1024 von älteren GraKas unterstüzt?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 16, 2006 01:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
John Carmack hat diese Methode auch mal im Zusammenhang mit Shadow Maps erwähnt (siehe gamedev.net). Daher kann es ja so schlecht nicht sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 16, 2006 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Textrurem müssen nicht quadratisch sein 2048x1024 sind kein problem solanger die 2048 nicht das limit sprengt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 16, 2006 14:32 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Achso, eine Möglichkeit, die mir noch einfällt ist, die Pixeldaten mit gluScaleImage auf Power-Of-Two-Format zu skalieren.

In Ayas Fall ist es wahrscheinlich am besten mit einer grossen schwarzen Power-Of-Two Textur zu beginnen, und dann die Videodaten mit glTexSubImage2D in der Textur zu aktualisieren. :)



Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 17, 2006 12:27 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
@Aya: Meine Antwort hast du wohl ignoriert? PoT Texturen müssen nicht Quadratisch sein. Das mussten die glaub ich noch nie.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 17, 2006 13:21 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Flash hat geschrieben:
@Aya: Meine Antwort hast du wohl ignoriert? PoT Texturen müssen nicht Quadratisch sein. Das mussten die glaub ich noch nie.

Ne, nicht ignoriert :)
ich wollte mich nurnochmal vergewissern ^^


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]