AwesomeSauce
2014-03-14, 20:48:42
Hallo zusammen
Ich implementiere derzeit einen Shader, der im wesentlichen daraus besteht, vier separierbare Gaussian-Blurs mit unterschiedlichen Varianzen zu berechnen und die Resultate mit unterschiedlichen Gewichtungen für jede Varianz, aber auch für jeden Farbkanal zu verrechnen. Konzeptionell spielt sich das so ab:
res = Blur(var1) * weight1 + Blur(var2) * weight2 + ..., wobei weight[i] ein RGB-Vektor ist
Nun hatte ich eigentlich vor, für die Akkumulierung Blending zu benutzen. In D3D könnte ich ja über SetBlendState einfach verschiedene Blend-Factors für die Farbkanäle setzen. Auf die Schnelle habe ich keine Möglichkeit gefunden (der StackOverflow-Thread ist schon älter: http://stackoverflow.com/questions/2818351/per-component-alpha-channels-with-opengl), ähnliches in OGL/GLSL zu handhaben. Gibt es sowas wirklich nicht?. Ich hoffe, dass sich jemand hier schon etwas länger mit OpenGL und GLSL beschäftigt und mir eine Antwort geben kann. Plattform ist OpenGL 4.3 mit entsprechender GLSL Version.
Vielen Dank
Ich implementiere derzeit einen Shader, der im wesentlichen daraus besteht, vier separierbare Gaussian-Blurs mit unterschiedlichen Varianzen zu berechnen und die Resultate mit unterschiedlichen Gewichtungen für jede Varianz, aber auch für jeden Farbkanal zu verrechnen. Konzeptionell spielt sich das so ab:
res = Blur(var1) * weight1 + Blur(var2) * weight2 + ..., wobei weight[i] ein RGB-Vektor ist
Nun hatte ich eigentlich vor, für die Akkumulierung Blending zu benutzen. In D3D könnte ich ja über SetBlendState einfach verschiedene Blend-Factors für die Farbkanäle setzen. Auf die Schnelle habe ich keine Möglichkeit gefunden (der StackOverflow-Thread ist schon älter: http://stackoverflow.com/questions/2818351/per-component-alpha-channels-with-opengl), ähnliches in OGL/GLSL zu handhaben. Gibt es sowas wirklich nicht?. Ich hoffe, dass sich jemand hier schon etwas länger mit OpenGL und GLSL beschäftigt und mir eine Antwort geben kann. Plattform ist OpenGL 4.3 mit entsprechender GLSL Version.
Vielen Dank