【发布时间】:2016-06-06 13:17:23
【问题描述】:
我能够将图像渲染为纹理,该纹理呈现在屏幕的左上角。现在我想将纹理在 X 轴右侧缓慢移动并在左上角添加另一个纹理,并且想要连续进行。
现在,我可以渲染单个纹理,但无法进一步移动。谁能帮我更进一步?
我正在输入我到目前为止所做的代码。
代码:
顶点着色器
attribute vec2 a_position;
uniform vec2 u_resolution;
uniform mat3 u_matrix;
varying vec2 v_texCoord;
void main() {
gl_Position = vec4(u_matrix * vec3(a_position, 1), 1);
v_texCoord = a_position;
}
片段着色器
precision mediump float;
// our texture
uniform sampler2D u_image;
// the texCoords passed in from the vertex shader.
varying vec2 v_texCoord;
void main() {
gl_FragColor = texture2D(u_image, v_texCoord);
}
Javascript
gl.clear(gl.COLOR_BUFFER_BIT || gl.DEPTH_BUFFER_BIT);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, image.width, image.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, dataTypedArray);
//Draw the rectangle.
gl.drawArrays(gl.TRIANGLES, 0, 6);
其中 dataTypedArray 是一个 Uint8Array 像素。
接下来我想移动这个渲染的纹理并在之前的位置添加更多的纹理。有什么建议吗?
【问题讨论】:
标签: javascript canvas opengl-es html5-canvas webgl