我创建的粒子发射器的纹理是带有alpha的白色圆圈。无法使用传递给片段着色器的颜色来对精灵进行着色。
我尝试了以下方法:
gl_FragColor = texture2D(Sampler, gl_PointCoord) * colorVarying;
这似乎在做某种附加着色。
我正在尝试将其移植:
http://maniacdev.com/2009/07/source-code-particle-based-explosions-in-iphone-opengl-es/
从ES 1.1到ES 2.0
最佳答案
对于您的代码,请考虑以下示例:
那么gl_FragColor将为(0,0,0,0.5)黑色-半透明。
通常,您可以使用mix内插值,但是如果我理解您的问题,那么它甚至更容易。
基本上,您只需要纹理中的Alpha通道并将其应用于其他颜色,对吗?那么您可以这样做:
gl_FragColor = vec4(colorVarying.rgb, texture2D(Sampler, gl_PointCoord).a)
关于ios - 将颜色应用于Fragment Shader中的OpenGL ES 2.0 Point Sprite纹理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15948939/