bin ein absoluter Neuling in sachen OpenGL nachdem ich jetzt schon längere Zeit mit DirectX gearbeitet habe wollte ich auch mal OpenGL wenigstens antesten um mich evtl. später intensiver damit zu befassen
Das Umdenken (von DX auf OGL) war bis jetzt eigentlich auch gar nicht so schwer bis ich versuchen wollte mehrere Texturen auf meine Objekte zu kleben.
Ich hab es zwar geschafft 2 Texturen auf mein Objekt zu bekommen und diese mit GL_MODULATE irgntwie überblendet aber habe nichts weiter zu spezielleren Methoden gefunden.
Ich will z.B. die 2te Textur langsam auf die erste blenden. In DX habe ich dies mit FactorAlpha gelöst nur in OGL finde ich keinen Ansatz
Überlegungen von mir waren z.B. den AlphaWert der Textur wärend der Laufzeit zu verändern nur hab ich keine Ahnung wie und denke außerdem dass das zu aufwendig wäre
das wars erstmal von mir ... freu mich über jede Hilfe
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Kenne mich mit D3D zwar nicht aus, aber anhand deiner Aussage lässt sich vermuten dass das was du willst mit OpenGL leider nicht so einfach zu realisieren ist.
An deiner Stelle würde ich mir die Extension GL_ARB_texture_env_combine mal genauer ansehen, denn die gibt dir mehr Kontrolle über das Multitexturing.
Am besten (und einfachsten) würde sich sowas natürlich über ein Fragmentprogramm(shader) realisieren lassen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hast du dir mal das Texturtut hier auf der Seite angeguckt? Da war was mit Texturblenden dabei.
Ansonsten ist das OpenGL-Redbook das Standartwerk wo sich ein Blick rein lohnt. (Jedenfalls bis jetzt. )
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Konkret: auch OpenGL erlaubt das genaue Überblenden von Texturen, wobei du, wie von SoS vorgeschlagen, Gl_COMBINE verwenden solltest, das ab OpenGL 1.3 ebenso wie Multitexturing Teil der Corefunktionen ist.
Die erste Textureinheit setzt du ganz normal auf was immer du halt haben willst, bei der zweiten Textureinheit setzt du den TextureEnvMode auf interpolate, dann kannst du mit dem Alphawert von TextureEnvColor ganz genau einstellen, wie die Texturen bei der Gewichtung übergeblendet werden sollen.
OpenGL ist natürlich viel flexibler als das - so kann der hierfür verwendete Alphakanal auch einer Textur oder der Primärfarbe entnommen werden, Quell und Zieloperanden von Farb- und Alphakanälen müssen auch nicht identisch sein - und Farb- und Alphakanäle können auch noch skaliert werden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mitglieder in diesem Forum: Bing [Bot] und 8 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.