学习OpenTk,笔记五
学习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)