我强烈建议从 “学习WebGL的” 阅读教程。
对于四边形的每个顶点,您发送其“UV坐标”。 UV坐标是vec2数据,用于指示纹理的哪一部分与顶点绑定。例如,(0,0)uv表示纹理的左上角,而(0.3,0.4)表示纹理上与纹理的30%宽度和40%高度相对应的位置。
在GLSL着色器,还有一个特殊的功能 - 的Texture2D,和这里的用法:
uniform sampler2D uTexture;
varying vec2 vUV;
void main()
vec4 color_from_texture = texture2D (uTexture, vUV);
gl_FragColor = color_from_texture;
}
这就是所谓的取样质感,且要在某些位置调用的Texture2D函数读取纹理数据。 (x1,y1),(x2,y1),(x1,y2),(x2,y2),它们对应的UV坐标分别为(0.0,0.0),(1.0),(x1, ,0,0),(0.0,1.0),(1.0,1.0)。 请注意我们如何通过将UV坐标完全从一个点定义到另一个点来扩展纹理。
顶点着色器会是这个样子:
attribute vec2 aUV;
attribute vec2 aVertexPos;
varying vec2 vUV;
void main() {
vUV = aUv;
gl_Position = vec4(aVertexPos, 1.0); // maybe modelViewMatrix * projMatrix * vec4(aVertexPos, 1.0)
}
着色器将插值UV结合了一个三角形所以每个片段会得到自己的,插值来回紫外线,因此将品尝不同的纹理数据的顶点之间的坐标。
仔细阅读本,在那之后,创建四应该很容易: http://learningwebgl.com/blog/?p=507
希望这有助于。
直播例如:http://abstract-algorithm.com/quad.html
实测值使用CSS3D演示:http://www.is-real.net/实验/ css3/wonder-webkit/ – forresto 2013-05-16 06:18:43
这里的c需要在CSS中执行此操作所需的矩阵数学的全面解释和演示:http://math.stackexchange.com/a/339033/78081 – forresto 2013-05-16 13:16:16
您需要css3或webgl代码? – 2013-05-16 20:33:11