OpenGL是什么

OpenGL是什么

OpenGL是一个有Khronos组织制定并维护的规范(Specification),个个显卡厂商根据规范进行实现对应的功能。

PS:要实现一个绘制三角形的接口,OpenGL 定义了方法接口 drawTriangle ,各个厂商则根据各自的内部设计,实现内部的绘制功能。用户在开发过程中则无需关注显卡的实现,只要调用OpenGL对应的接口,则可显示具体的绘制过程。

OpenGL的渲染模式

立即渲染模式【Immediate mode】:3.0版本之前 暴漏的接口比较少,所以在实现具体功的时候只能,按照固定的流程,按部就班的进行。

核心渲染模式 [Core-profile Mode]:在3.0版本以后,OpenGL标准推出,给开发着更多的自由度。

OpenGL渲染管线

通过OpenGL将数据从虚拟三维世界,到屏幕上的具体像素的过程叫做渲染。

渲染的流程

1、顶点数据:

​ 顶点数据包括:位置、颜色、发线等数据

2、三维变换:

​ 模型变换:平移、缩放、旋转

​ 视图变换:转化到相机视图观察数据

​ 投影变换:通过相机位置将对应的点儿 透视到屏幕上

3、图元装配:

​ 把变化后的图元根据顺序连接称为 三角形 或者 直线

4、裁剪剔除:

​ 把超出视口的裁剪(超出相机观察范围的点),把背向我们的点进行剔除。以加快后续的渲染速度。

5、光栅化:

​ 把虚拟的几个图形点,通过连接后围城的区域计算计算栅格才能进行渲染。

6、片元着色:

​ 把光栅后组成的区域计算颜色填充等信息

7、混合和测试:

​ 混合决定了透明效果,测试决定了前后次序。

顶点数据—>三维变换---->图元装配—>删除与剔除—>光栅化---->片元着色---->混合与测试

以绘制一个三角形为例:

初始化一个三角形数据(三个顶点 位置 颜色)等信息----->移动三角形,以相机为中心观察----->把观察到的点按照顺序连接—>把投影后能看到的留下,看不看的进行删除----->将顶点投射到屏幕上---->给围成每个像素进行涂颜色---->如果有多个图形叠加则进行混合与测试

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值