WebGL學習 變換 矩陣 動畫(五)

2021-10-06 19:32:19 字數 1977 閱讀 1749

'uniform vec4 u_translation;'  // 定義u_translation 平移相關資訊

// void main()函式中倆者相加

'gl_position = a_position + u_translation;' // 倆者相加

// 平移函式

function translation(gl)

'uniform mat4 u_xformmatrix;' + // 定義平移矩陣

// void main倆者相乘即可

'gl_position = a_position * u_xformmatrix;' +

// 定義變換矩陣函式

/** * 平移

* gl gl物件

*/function translationmatrix(gl)

1)、定義旋轉軸,圖形圍繞旋轉軸旋轉

2)、定義旋轉方向

3)、定義旋轉角度

'uniform float u_cosb;' + // 定義角度相關資訊

'uniform float u_sinb;' + // 定義角度相關資訊

// void main()

'gl_position.x = a_position.x * u_cosb - a_position.y * u_sinb;' + // 根據公式計算x軸相關資訊

'gl_position.y = a_position.x * u_sinb + a_position.y * u_cosb;' + // 根據公式計算y軸相關資訊

'gl_position.z = a_position.z;' + // 等於自身或者1

'gl_position.w = 1.0;' + // // 顏色管道 等於1

/*** 旋轉

* gl gl物件

*/function rotation(gl)

'uniform mat4 u_xformmatrix;' + // 定義變換矩陣變數

// void main

'gl_position = a_position * u_xformmatrix;' + // 倆者相乘即可

/** * 根據矩陣進行旋轉

* gl gl物件

*/function rotationmatrix(gl)

'uniform float u_sx, u_sy, u_sz;' + // 定義縮放相關比例

// void main

'gl_position.x = a_position.x * u_sx;' + // 相乘

'gl_position.y = a_position.x * u_sy;' + // 相乘

'gl_position.z = a_position.z * u_sz;' + // 相乘

'gl_position.w = 1.0;' + // // 顏色管道 等於1

/** * 縮放

* gl gl物件

*/function zoom(gl)

/**

* 矩陣縮放

* gl gl物件

*/function zoommatrix(gl)

平移、旋轉、縮放等組合(

demo

'gl_position = a_position * u_xformmatrixtranslation * u_xformmatrixrotation * u_xformmatrixzoom;' + // 倆者相乘即可 變換矩陣運算

/** * 根據矩陣進行混合變換 平移 旋轉 縮放

* gl gl物件

*/function hybridtransformation(gl)

WEBGL學習筆記(二) 矩陣變換

遊戲已經做好,但是不能支援哈,我在我的獨立部落格裡面加入了這個遊戲。載入時候會黑屏,等待數秒即可,點選這裡體驗試玩 three.js 使用矩陣matrices進行3d變換 位置 position 平移,旋轉rotations,和縮放scaling.每乙個object3d例項都儲存乙個矩陣儲存位置,旋...

WebGL 頂點資料矩陣變換

此處需要了解乙個矩陣函式庫cuon matrix.js這是 webgl程式設計指南 作者寫的乙個庫,它封裝了一些簡單易用的方法,來實現一些複雜繁瑣的矩陣計算操作 具體方法如下表 matrix4物件有兩種方法,一種是名稱中帶有set和一種不帶set的 使用上面的方法可以方便進行矩陣變換 如平移操作 v...

LearnOpenGL學習筆記 五 變換

openggl中對物體的變換是通過矩陣物件來實現的,需要掌握一些最基本的矩陣運算相關知識。include include include我們需要定義頂點著色器,使能夠接收乙個mat4的uniform矩陣,通過變換矩陣左乘位置向量,就可以實現對圖形的變換。version 330 core layout...