我強烈建議從 「學習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