注册

OpenGL基础点

一、OpenGL中的坐标系

1. 2D笛卡尔坐标系(X轴,Y轴),平面图形,视口(显示窗口区域系数)

2. 3D笛卡尔坐标系(X轴,Y轴,Z轴),立体图形

3. OpenGL的投影方式有:
透视投影:用来渲染立体图形,有远小近大的效果。具有更加逼真的效果
正投影:只能用来设置平面图形

4.坐标系的分类:

① 惯性坐标系:没有什么参考价值,只要用来平移到世界坐标系

② 世界坐标系:大环境中的位置,系统的绝对坐标

③ 物体空间坐标系(局部空间):局部空间中的位置

④ 摄像机坐标系:观察空间(观察者)

5.坐标系之间的变换

① 物体坐标系,模型变换

② 转换到世界坐标系,视变换

③ 转换到观察者坐标系/摄像机坐标系,投影变换

④ 转换到裁剪坐标系,透视除法

⑤ 转换到规范化设备坐标,视口变换

⑥ 转换到屏幕坐标

注:① - ④ 是可以由开发者自定义完成的,⑤ - ⑥是有系统OpenGL来完成的

二、着色器的渲染流程

1.顶点数据

2.顶点着色器:接收顶点数据,单独处理每个顶点

3.细分着色器:
  ① 可选:描述物体形状,在管线中生成新的饿几何平面模型,生成最终形态
  ② 组分控制着色器/细分计算着色器:对所有的图形进行修改几何图元类型或者放弃所有图像

4.几何着色器

5.图元设置

6.剪切:剪切窗口之外的绘制

7.光栅化:输入图元的数学描述,转化为与屏幕对应位置像素片元,简称光栅化

8.片元着色器:片元着色器以及深度值,然后传递到片元测试和混合模块

9.效果

三、补充几个知识点

1.图片的渲染流程:
  ① GPU解码图片
  ② GPU纹理混合、顶点计算、像素点填充计算、渲染到帧缓冲区
  ③ 时钟信号:垂直同步、水平同步
  ④ iOS设备双缓冲机制:显示系统通常会引入两个帧缓冲区,双缓冲机制

2.MVP矩阵:
  ① model:物体的一些变化
  ② view:观察
  ③ projection:3D矩阵

3.强制解压缩:对图片进行重新绘制,得到一张新的压缩后的位图,其中用到的最核心的函数是:GCBitmapContextCreate

0 个评论

要回复文章请先登录注册