[英]Rotation in OpenGL ES 2.0
我有一个2x4矩阵。 代表一个正方形的4个点。 我需要将所述正方形旋转x弧度(显然可以转换为度),旋转点/锚点为正方形的中心。
由于OpenGL ES 2.0已删除了转换功能(glPush / glPop,glRotate,glTranslate,glScale等),因此我需要自己进行旋转。 有人可以帮我编写一个函数来执行旋转吗?
二维旋转可以表示为(其中theta
以弧度表示):
cs = cos(theta);
sn = sin(theta);
out.x = in.x * cs - in.y * sn;
out.y = in.x * sn + in.y * cs;
上面的线性方程可以表示为2x2矩阵(以美国方式,按列排列):
| cs sn |
| -sn cs |
矩阵可以扩展以添加翻译:
| cs sn tx |
| -sn cs ty |
| 0 0 1 |
在OpengGLES 2.0中,您可能会将这4个点打包为两个组件的数组,您需要在顶点着色器中对其进行转换。 您可以计算上述矩阵,然后使用统一码将其发送到管道中。
如果您不知道OpenGL ES 2.0管道,则可能会花费很长时间。 您需要更多信息吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.