學習OpenGL、OpenTK
1、向量需要複習,在矩陣中的變化很需要用到它(按照符合確定方向)
參考:
https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations/
2、圖像索引,先算列,再算行
3、字體引擎使用Freetype
參考:
https://freetype.org/freetype2/docs/reference/ft2-version.html
https://github.com/freetype/freetype
https://github.com/ryancheung/FreeTypeSharp
4、學習參考例子,參看github上別人的OpenTK的學習例子
參考:
https://github.com/Den3D/LearnOpenTK_ALL
5、OpenGL內部是有一個狀態機
6、座標體系,從局部座標(Local Space)、世界座標(World Coordinate)、觀察座標(View Coordinate)、裁剪座標(Clip Coordinate)、屏幕座標(Screen Coordinate)。
理解:一開始的圖形圖像是在一個本地的創造空間(就像是一個工坊),構造它的立體形狀和紋理(model),然後把它放在一個廣闊的世界內(賦予它世界座標,view),它有很多可供觀察的角度(裁剪其中一面,projection),
之後根據視口大小轉換爲屏幕座標顯示,OpenTK內置的Matrix有兩個矩陣可供創建,一個是正射投影矩陣(Orthographic Projection Matrix),另一個是透視投影矩陣(Perspective Projection Matrix) ,函數CreateOrthographic和CreateOrthographicOffCenter,一個是正常的,一個是Z軸從中心穿過,可以從源碼看到
glm::ortho和Matrix4.CreateOrthographicOffCenter源碼一致
參考投影的文章:https://www.cnblogs.com/davelink/p/5623760.html 、https://zhuanlan.zhihu.com/p/460137188(困擾很久才搜到,要是有動畫展示就好了)
7、矩陣加減乘, 內置的Matrix4.Identity是一個4*4的基礎矩陣
摘錄如下:
縮放:(Scaling)一個向量進行縮放就是對向量的長度進行縮放(多數的縮放就像是遠近,改變的是Z軸)
位移:(Translation)是在原始向量的基礎上加上另一個向量從而獲得一個在不同位置的新向量的過程(如果只是2D的平面,位移改變的就是X軸和Y軸)
旋轉:在3D空間中旋轉需要定義一個角和一個旋轉軸(Rotation Axis)