我正在创建一个粒子发射器,其纹理是带有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
答案 0 :(得分:2)
使用您的代码,请考虑以下示例:
然后gl_FragColor将是(0,0,0,0.5)黑色 - 半透明。
通常,您可以使用mix来插值,但如果我理解了您的问题,则更容易。
基本上,你只需要纹理中的alpha通道并将其应用到另一种颜色,对吧?然后你可以这样做:
gl_FragColor = vec4(colorVarying.rgb, texture2D(Sampler, gl_PointCoord).a)