欢迎光临散文网 会员登陆 & 注册

咸鱼发梦 | 第三回 OpenGL

2023-02-10 17:41 作者:一纸觞华  | 我要投稿

咸鱼好想摆烂....

        假设现在要画一幅画,画布已经准备好了,现在了解一下画笔吧。就是OpenGL。

        OpenGL,就是图形API。就嗯...哈哈哈哈。

        系统一般是通过显卡把数据变成图像显示到显示器上面去的。我现在有一个飞机模型(就是一堆数据),我需要通过显卡,把它显示到显示器上面。就需要跟显卡沟通,让她帮我完成任务。怎么沟通?用接口...就是API..因为都是跟图形有关的,所以叫图形API...呃...

        图形API 也有好多种,比较主流的据说是DirectX、OpenGL、Metal。DirectX需要运行在windows平台,Metal是苹果的,而OpenGL是跨平台的,就是不依赖于平台的。一般移动设备上的是OpenGL ES,就是精简版的OpenGL。

        以前我觉得游戏引擎好厉害,可以处理那么复杂的图形,后来发现原来厉害的不是引擎,是图形API。但最后,我发现显卡才是真正的王者。因为图形API,只是接口,定义好的接口。真正实现这个接口的是显卡。图形API 就像是大家订好了一套协议,以后都按照协议上说明的去沟通。我通过API告诉了显卡,我有这些数据,你帮我画一个飞机。显卡就通过这样那样的方法帮你画出来显示到显示器上了。你问显卡到底用了什么方法,显卡说,你别管,给你看到飞机就行。不同的显卡有自己的实现方式。

        这个流程,看起来没什么毛病。咸鱼觉得自己可以开始了。然后咸鱼懵逼了。因为不知道怎么开始...

        图形API 只是一套协议。她不是库。也就是说不是去哪里下载一个库下来用就行(其实也是下一个库来用...)。调用 API 什么概念,是调用实现好了的 API。那画图的API实现在哪里,在显卡上,更准确的说,在显卡的一个地址上面。但谁特么知道那个地址在哪里...不同的显卡,地址也不一样。你想要画图,显卡也按照约定提供好了画图的方法,现在问题是你要找到那个画图方法的位置。是不是很懵逼?没关系,伟大的前辈们又帮我们做好了这些事呜呜呜呜,这个世界怎么这么多好人!前辈们提供了一个库,你只要像图形API 约定好的那样,调用方法,无论你用什么系统、什么显卡他都会帮你找到那个命中注定的地址,让显卡为你工作!

        当然以上的前提是你用的这个显卡是真的实现了这些API...目前大多都是支持OpenGL的。不过OpenGL经过这么多年的成长,也有好几个版本,还需要确认好显卡是否支持对应的版本。

        好人前辈们提供了好几个这样功能的库,可以搜索 OpenGL三方库 自行选择。这些三方库哪里下载、如何使用,也有前辈写好了教程。可以搜索 LearnOpenGL CN 学习。是非常棒的入门教程。

        入门教程学习完之后可以飞啦咸鱼哒叽!!

        咸鱼选择学习的是 OpenGL,咸鱼没有Mac,还想做的登西跑android,所以其实没得选。三方库选择的是 GLAD,他可以根据你选择的OpenGL版本导出对应版本的库。感觉很方便,可以治好强迫症。目前咸鱼学习的OpenGL 版本是 Core 3.3。

        

虽然显卡在咸鱼心里是王者,但是谁又能说谁不重要呢~大家都在自己的位置上发光发热,缺一不可哦。就是这些共同的协作碰撞出来这么多赛博火花吧~

咸鱼也会好好躺着晒太阳,在自己的位置上好好摆烂的!

咸鱼发梦 | 第三回 OpenGL的评论 (共 条)

分享到微博请遵守国家法律