カバーフローに使用されているものと同様のイメージを反映するシェーダを作成したいと思います。GLSL Shader - Coverflow 2Dオブジェクトのリフレクション
// Vertex Shader
uniform highp mat4 u_modelViewMatrix;
uniform highp mat4 u_projectionMatrix;
attribute highp vec4 a_position;
attribute lowp vec4 a_color;
attribute highp vec2 a_texcoord;
varying lowp vec4 v_color;
varying highp vec2 v_texCoord;
mat4 rot = mat4(-1.0, 0.0, 0.0, 0.0,
0.0, -1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0);
void main()
{
gl_Position = (u_projectionMatrix * u_modelViewMatrix) * a_position * rot;
v_color = a_color;
v_texCoord = a_texcoord;
}
// Fragment Shader
varying highp vec2 v_texCoord;
uniform sampler2D u_texture0;
uniform int slices;
void main()
{
lowp vec3 w = vec3(1.0,1.0,1.0);
lowp vec3 b = vec3(0.0,0.0,0.0);
lowp vec3 mix = mix(b, w, (v_texCoord.y-(float(slices)/10.0)));
gl_FragColor = texture2D(u_texture0,v_texCoord) * vec4(mix, 1.0);
}
しかし、このシェーダは以下を作成します current result そして私はイメージが水平およびI(私もそう呼ばれるを使用しようとした回転行列で非常に多くの異なるパラメータを試してみましたどのように「フリップ」に知りません"ミラーマトリックス")しかし、私は元の画像の底に画像を反映する方法を知らない。
ありがとうございます!今私は透明なグラデーションを作る方法を理解しなければならないので、黒だけでなく黒をフェードアウトすることもできます:) Y軸上に画像を移動させる簡単な方法はありますか? – seveves