2
我一直在學習opengl es 2.0編程指南中的opengl es。它們具有看起來像爆炸的粒子效應。我試圖通過向頂點着色器添加mat4投影矩陣來增強它們的示例代碼,着色器編譯和工作,但我在獲取將投影考慮在內的位置效果時遇到問題。我的代碼如下所示將投影矩陣添加到opengl es sprites粒子效果頂點着色器
const char* ParticleExplosionVertexShader = STRINGIFY (
uniform float u_time;
uniform vec3 u_centerPosition;
uniform mat4 Projection;
attribute float a_lifetime;
attribute vec3 a_startPosition;
attribute vec3 a_endPosition;
varying float v_lifetime;
void main()
{
if (u_time <= a_lifetime)
{
gl_Position.xyz = a_startPosition + (u_time * a_endPosition);
gl_Position.xyz += u_centerPosition;
gl_Position.w = 1.0;
}
else
gl_Position = vec4(-1000, -1000, 0, 0);
v_lifetime = 1.0 - (u_time/a_lifetime);
v_lifetime = clamp (v_lifetime, 0.0, 1.0);
gl_PointSize = (v_lifetime * v_lifetime) * 40.0;
}
);
我能夠投影添加到行沒有任何錯誤,但不幸的是在這裏它不是真正需要的代碼被放置d =屏幕的物體,在結束其使用壽命
gl_Position = Projection * vec4(-1000, -1000, 0, 0);
我也試圖改變線路
gl_Position.xyz += u_centerPosition;
到
gl_Position += Projection * u_centerPosition;
但我有沒有運氣得到它的地方,因爲我想它
難道我做錯了什麼?還是有沒有一個原因,這本書沒有投影矩陣,例如它不是有人應該使用點精靈?
任何幫助或指針我應該考慮可以理解
感謝
編輯的內容:請讓我知道如果你需要從我