8
我正在尝试在OpenGL ES 2.0中为粒子系统实现纹理点(例如点精灵)。我遇到的问题是所有的点都呈现为纯黑色方块,而不是纹理正确映射。OpenGL ES 2.0中的纹理点?
我已经验证gl_PointCoord实际上是返回从0.0到1.0的x/y值,它将映射整个纹理。纹理2D调用似乎总是返回黑色。
我的顶点着色器:
attribute vec4 aPosition;
attribute float aAlpha;
attribute float aSize;
varying float vAlpha;
uniform mat4 uMVPMatrix;
void main() {
gl_PointSize = aSize;
vAlpha = aAlpha;
gl_Position = uMVPMatrix * aPosition;
}
我的片段着色器:
precision mediump float;
uniform sampler2D tex;
varying float vAlpha;
void main() {
vec4 texColor = texture2D(tex, gl_PointCoord);
gl_FragColor = vec4(texColor.rgb, texColor.a * vAlpha);
}
有问题的质地是16×16。我能够成功地将此纹理映射到其他几何体,但出于某种原因不能指向。
我的平台是运行Android 2.2的摩托罗拉Droid。
否认,我和我的纹理加载程序的问题。现在效果很好。 – Ivan 2010-08-17 02:16:55
你可以说出了什么问题,以及你如何解决它...... – 2011-03-08 17:05:38
它只是纹理的加载?你如何将它传递给着色器?干杯 – DiogoNeves 2011-05-22 22:28:01