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

Aktuelle Zeit: Fr Jul 18, 2025 14:16

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Nov 04, 2005 16:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
Okay mal ne (glaub ich) ganz banale Frage!

1) glActiveTextureARB gehört doch meines Wissens zu der MultitextureExtension von OpenGL, oder ?
2) Soweit ich weiß gibt es aber auch glActiveTexture und ich meine gehört zu haben, dass man wenn möglich heut zu tage
diese Function benutzen sollte?!
3) Das führt mich zu der Frage warum gibt es zwei Functionen für dieselbe Functionalität und...
4) ... bedeutet das das Multitexturing damit keine Extension mehr ist und auch nicht mehr seperat geladen und initialisiert werden muss (also die dazugehörigen Functionen z.B."glMultitexCoord") ?

So viele Fragen, hoffe ihr könnt mir helfen! Will ja schließlich auch versehen was das da genau ist womit ich tagtäglich arbeite !

Edit: PS: dass mir jetzt bloß keiner schreibt "Hey mit den dglHeadern brauchst du da eh nich viel machen zum initialisieren einer extension".... denn die Fragen sind meines erachtens trotzdem berechtigt, ganz davon abgesehen dass ich opengl auch unter c++ einsetzte...

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 04, 2005 16:19 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
1) ja
2) Schau mal im Wiki ;)
Ist erst seit 1.3 dabei.
3) ARB im Wiki
Aus Kompatibilitätsgründen.
4) Du musst doch jede OpenGL-Funktion seperat laden :?
Musst nur vorher überprüfen ob OpenGL-Version >= 1.3 ist,
genauso wie du bisher bei den Extension überprüfen musstest ob sie unterstützt werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 04, 2005 16:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das was dich verwirrt liegt an dem Extensionsystem von OpenGL. Benötigte Funktionalität kann von einzellnen Herstellern als Extensions angeboten und Implementiert werden. Solche Extensions tragen dann üblicherweise ein ATI, NV, SGI, SGIS etc. im Namen. Die ARB ist ein Konsortium in dem alle (viele) Hersteller an einem Tisch sitzen und sich gemeinsam Extensions ausdenken. Teilweise ist das lediglich eine Adaption einer bestehenen Extension. Evtl wird diese noch ein bisschen erweitert.

Dann kann diese Konsortium aber auch noch verschiedene Extension in den OpenGL Kern einfließen lassen. Sprich diese sind dann fester Bestandteil einer OpenGL Version und ein Treiber der OpenGL 1.5 sein will muss all diese Extensions unterstützen anderenfalls darf er sich nicht 1.5 nennen.

Bei Multitexturing ist es so, dass diese ab Version 1.3 in den Kern aufgenommen wurde. Wenn du darauf abprüfst kannst du auch getrost die Version ohne arb benutzen. Sollte OpenGL nur Version 1.2 sein solltest du auf die MultiTexture Extension abprüfen und dann entsprechend diese Nehmen.

Um deinen Code zu vereinfachen solltest du dir die Konstanten mal anschauen. Die ARB und die Kern haben die selben Werte. Es spielt also keine Rolle welche Konstanten du benutzt. Bei den Methoden ist es etwas komplizierter. Da die Methoden im Kern aber genau die selben Parameter wie die der Extension haben kann man auch das vereinfachen in dem man sich Variablen auf die Methoden merkt. Und je nachdem was unterstützt wird benutzt die einen 20 Methoden oder die anderen.

Du musst dabei aber darauf achten, dass die Methoden 100%tig gleich sind. Also das wie erwähnt eine Extension adaptiert wurde. Sollte das nicht der Fall sein musst du es anders Wrappen. Eine Klasse mit den entsprechenden Ableitungen für das eine oder das andere.

Oder du setzt zwingend OpenGL 1.3 vorraus und benutzt nur die Kernfunktionalität.

Wenn du die Methoden von Hand lädst wirst du nur die bekommen die unterstützt werden und das ist anhand vom Extensionstring und der Version geregelt.

Ach ja. Wenn eine Funktionalität in den Kern gewandert ist ist es nicht zwingend vorrausgesetzt, dass deren Extension auch noch unterstützt wird. So es bei NPOT und ATI der Fall. Neuere Treiber unterstützen OpenGL 2.0 und da sind NPOT Kernfunktionalität. Allerdings wir die ARB Extension immernoch nicht unterstützt. So etwas macht die Sache dann nicht unbedingt leichter.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 04, 2005 17:52 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Befehle machen ja auch nicht genau das selbe. glActiveTexture macht man um zu sagen ab jetzt soll nur die Textur angesprochen werden. Mit glMultiTexCoord kann man "mal schnell" Texturkoordinaten an eine Textur übergeben, die nicht activ sein muss. Kann mir Vorstellen, dass ein ändern der Activen textur sich nicht lohnt, wenn nur wenige Texturcoordinaten nachfolgen. Das wäre aber wieder ein Benchmark Fall. ;)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 04, 2005 18:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
Flashwas du da schreibst kapier ich jetzt überhaupt nicht ;(...
Ich mein es hat ja niemand bezweifelt das glActiveTexture und glMultitexcoord zwei völlig unterschiedliche Functionen sind...
Es geht um den Gegensatz: glActiveTexture und glActiveTextureARB
bzw. glMultiTexCoord und glMultiTexcoordARB

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 05, 2005 22:49 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Oh...dann hab ich dich falsch verstanden. Die erklärung von Lossy sollte dann allumfassend richtig sein. 8)

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


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


Wer ist online?

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