Also ich habe ein Fahrzeug (ein Modell), das ich von einer Datei lade. Ich hab bereits Multitexturing hinbekommen, mit der Standardtextur (GL_TEXTURE0) und einer Dirtmap (GL_TEXTURE1, mit Alphakanal) darüberzulegen. Jetzt meine Frage... Wie kann ich der Dirtmap (GL_TEXTURE1) einen eigenen Alphawert zuweisen, also so dass die Textur darunter (GL_TEXTURE0) durchscheint? Aktuell verwende ich GL_DECAL für GL_TEXTURE1 (das passt am besten).
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich glaube da musst du dann den Alphakanal gleich mit in die Textur einbauen. Du könntest auch versuchen (ich habe aber nicht viel erfahrung mit Multitexturing und weiß nicht, ob das so geht), ob es klappt, wenn du noch eine dritte Textur, die komplett weiß ist und nur den gewünschten Alphakanal hat, drüberlegst und mit der zweiten mittels GL_MODULATE verblendest. Aber probier erstmal die erste Methode, die wird vermutlich zielführender sein.
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Ok, sorry, hab mich vielleicht etwas schlecht ausgedrückt...
Die Dirtmap, die ich über die Textur legen will, hat einen Alphakanal (32-bit, RGBA) Ich will jetzt aber, dass wenn man mit dem Fahrzeug länger im Dreck fährt, dass die Dirtmap, immer sichtbarer wird. Am besten, soll das ganze Stufenlos und mit einer einzigen Variable (0...1) einstellbar sein.
Kleiner hinweis noch... Ich programmiere mit einer etwas langsamereren Scriptsprache (AutoHotkey). Daher ist es nicht wirklich möglich, die Alphabits der Grafik (während der Laufzeit) für die Textur anzupassen. Aus dem Grund suche ich nach einer möglichkeit, das mit OpenGL zu erledigen.
Also Bildlich gesprochen:
Dateianhang:
t1.png
Das ist ein Auschnitt der Textur des Fahrzeuges
Dateianhang:
t2.png
Das ist die Dirtmap (Pink ist der Alphakanal)
Dateianhang:
t3.png
Wenn ich die beiden übereinander lege, sieht es so aus (das Funktioniert auch wunderbar)
Dateianhang:
t4.png
Ich will jetzt aber das ich auch noch den Alphawert der Dirtmap ändern kann (in etwa so)
@Lord Horanzont: Die erste Methode, kann ich wohl vergessen, da ich es Stufenlos haben will, und die Scriptsprache zu langsam ist die einzelnen Bits der Grafik zu setzen. Aber die zweite Methode hört sich vielversprechend an. Werd ich mal versuchen, ob ich da was zusammenzimmern kann
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Nein, ich benutze keine Shader, aber ich hab damit gerechnet, dass es wohl ohne Shader keine richtig vernünftige Lösung gibt. Leider, bin ich aber gerade erst dabei, mich in GLSL einzuarbeiten. Hoffe, das geht schnell, immerhin kann ich ja auch C++
Die meisten Operationen funktionieren Komponentenweise, also du musst nicht für jeden Farbkanal einzeln rechnen. Des weiteren können Variablen auch lokal deklariert werden (ist ja schließlich C-Syntax).
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.