分享

OpenGL与OpenCL是何关系?

 金刚光 2022-02-09

 OpenGL = Open Graphics Library

OpenCL = Open Computing Language

OpenCL和OpenGL是两个不同的API。
OpenGL是3D API。
OpenCL是GPU通用运算API。

OpenGL或DirectX是什么呢?是负责3D图形处理的API,包括各种光照、纹理、烟雾、阴影等效果。程序员在开发游戏的时候,只要考虑什么时候、在哪个位置,加上什么样的烟雾,就可以了。而不必考虑究竟要怎样去编写代码,才能实现烟雾效果的问题。

OpenCL呢?是显卡作通用浮点运算的API。比如视频转码,原来这个工作都是CPU来做的。现在显卡运算能力比较强,这个工作完全可以交给显卡来做。那究竟怎样调用显卡呢?这个工作不需要再由程序员考虑了,因为已经有一个现成的接口了,程序员只要管好转码的算法,然后直接调用OpenCL中现成的指令,这个工作就自动由CPU转交到GPU了。

现在大部分游戏都是用DirectX来渲染的. OpenGL现在更多用于专业绘图 图形站。

90年代末Apple放弃了自己的QuickDraw 3D,将OpenGL作为Mac OS X的官方3D库。Apple的系统给OpenGL程序带来了不少拥护者。之后OpenGL正式被Linux采用。

OpenCL对开发者、业界人员和消费者来说都是一个非常好的API,它可以使得开发者很容易的开发出跨平台的GPU计算程序,充分利用GPU强大的计算能力然后应用在各种领域,而且OpenCL亦是CUDA架构的一种有益补充。

其实 OpenCL 和 OpenGL 的关系还是很紧密地

OpenCL 的计算结果可以直接拿到 OpenGL 去做渲染。其他引擎之间就没这么容易了,得转换

而且语法非常相近

OpenGL 的函数声明都是 “gl” 开头

拿到 OpenCL 就变成 “cl” 开头,有很多函数名称和用法都相似, 熟悉 GL 的应该不难上手

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多