DGL https://delphigl.com/forum/ |
|
GL_ALPHA8 - Textur und texture2D - Loopup https://delphigl.com/forum/viewtopic.php?f=20&t=11006 |
Seite 1 von 1 |
Autor: | Bergmann89 [ So Okt 20, 2013 17:04 ] |
Betreff des Beitrags: | GL_ALPHA8 - Textur und texture2D - Loopup |
Hey Leute, ich steh grad irgendwie total auf'm Schlauch. Ich hab ne Textur mit nem 8bit Alpha-Kanal (GL_ALPHA8). Die blende ich mit glColor4f(1, 1, 1, 1) auf einen schwarzen Hintergrund. Ergebnis: weiße transparente Wolken. Nun wollt ich das mit ein paar anderen Sachen im Shader verrechnen, aber wenn ich da ein Texturlookup mit texture2D mache, dann ist rgb immer 0 und a der entsprechende Wert aus der Textur. Ich dachte immer der default-Wert für nicht vorhandene Kanäle ist 1.0, oder hab ich da was verdreht?! MfG Bergmann. |
Autor: | glAwesome [ So Okt 20, 2013 18:35 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Also ich weiß, dass wenn ich ein texture-Lookup im Shader mache, dass das Ergebnis schwarz ist, wenn ich die uniform-Variable für die Textur nicht gesetzt habe. In der glsl-spec (3.3) konnte ich nichts finden, welchen Wert texture-Lookups zurückgeben, wenn die Information in der entsprechenden Textur fehlt. Also im Zweifelsfall undefined. Aber was hält dich davon ab, im Fragmentshader sowas zu machen: Code:
Edit: Du scheinst mit einer älteren OpenGL-Version zu arbeiten. Da müsstest du natürlich #version, in und out anpassen, die glsl-Variable für glColor verwenden usw. Wird dich aber nicht vor Probleme stellen, denke ich. |
Autor: | Bergmann89 [ So Okt 20, 2013 18:52 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Hey, das geht natürlich, aber dann muss ich wieder ne extra Behandlung für Alpha-Texturen einführen, denn es können auch normale RGB(A) Teturen dort gebunden werden. Und ich bin mir eigentlich zu 99% sicher, dass das mal so ging wie in der fixed Pipeline. Ich weiß grad nur nich wo ich suchen soll :/ MfG Bergmann. |
Autor: | Lord Horazont [ Mi Okt 23, 2013 16:39 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Irgendwelche Texturfilter, parameter, pixelstore-dinger sind nicht aktiv? grüße |
Autor: | Bergmann89 [ Do Okt 24, 2013 08:31 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Hey, eigentlich nich, ich hab auch nochma google befragt und da hab ich nen ähnlichen Thread gefunden. Da hieß es, das die Kanäle die es in der Textur nicht gibt einfach nicht gesetzt werden. Also war es purer Zufall, dass RGB bis jetzt immer 1 war :/ MfG Bergmann |
Autor: | TAK2004 [ Do Okt 24, 2013 10:24 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Ich hab nochmal in die GLSlang 4.0 Specs geguckt und es sieht wie folgt aus. Die initialisierung von Vektoren wird nicht vorgegeben, da kann Datenmüll drin stehen. Matrizen müssen immer als Einheitsmatrix initialisiert werden. Texturzugriffe müssen gewährleisten, dass die Wert zwischen 0.0 und 1.0 liegen, wenn es ein float Vektor ist. Daraus folgt, dass ein Texturzugriff die Kanäle, die im Sampler verfügbar sind entsprechend beschreibt und mit den restlichen ein Wert zwischen 0.0 und 1.0 zu weist und der Wert ist vom Treiberentwickler frei wählbar. |
Autor: | phlegmatiker [ Do Okt 24, 2013 20:26 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Hat denn Deine eigentliche Textur auch einen gültigen Alphakanal? Wird der korrekt beim Laden der Targa gesetzt? |
Autor: | Bergmann89 [ Fr Okt 25, 2013 15:33 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Ja, die hat nur einen Alpha Kanal. Ich seh auch dass das Blending stimmt, nur die Farbe ist schwarz anstatt weiß. Ich das jetzt so angepasst das nur der Wert der Farbe geladen wird, der auch wirklich da is. |
Autor: | OpenglerF [ Di Okt 29, 2013 12:36 ] |
Betreff des Beitrags: | Re: GL_ALPHA8 - Textur und texture2D - Loopup |
Ich möchte an der Stelle mal darauf hinweisen, dass "GL_ALPHA8" scheinbar deprecated ist und man in moderenen OpenGL nicht mehr einsetzen sollte. Änliches Verhalten sollte man jedoch mit "GL_R8" und entsprechenden "Swizzle"-Einstellungen auch hin bekommen. Mit den Einstellungen sollte auch definiert sein, welche Werte die nicht in der Texture gespeicherten Farbkannäle haben. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |