Android小视频app源码图片转场和轮播特效
Android小视频app源码图片转场和轮播特效的相关代码
我们在 shader 中只需要准备 2 个纹理,一个取值在 0.0~1.0 的(uniform)渐变量,对应的 shader 脚本可以写成:
#version 300 es precision mediump float; in vec2 v_texCoord; layout(location = 0) out vec4 outColor; uniform sampler2D u_texture0; uniform sampler2D u_texture1; uniform float u_offset;//一个取值在 0.0~1.0 的(uniform)渐变量 vec4 transition(vec2 uv) { return mix( texture(u_texture0, uv);, texture(u_texture1, uv);, u_offset ); } void main() { outColor = transition(v_texCoord); }
代码中设置纹理和变量:
glUseProgram (m_ProgramObj); glBindVertexArray(m_VaoId); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_TextureIds[0]); GLUtils::setInt(m_ProgramObj, "u_texture0", 0); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_TextureIds[1]); GLUtils::setInt(m_ProgramObj, "u_texture1", 1); GLUtils::setFloat(m_ProgramObj, "u_offset", offset); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, (const void *)0);
以上就是Android小视频app源码图片转场和轮播特效的相关代码, 更多内容欢迎关注之后的文章