当前位置:   article > 正文

OpenGL与OpenCL是何关系?_opencl opengl

opencl opengl

版权声明:belongs to tony2278 https://blog.csdn.net/tony2278/article/details/51006521

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 的应该不难上手

OpenCL 的计算结果可以直接拿到 OpenGL 去做渲染?

请问这个如何实现啊?用OpenCL计算得到的一块数据直接作为vertexbuffer,texture?2个完全不同的context如何share这个资源?

http://www.anandtech.com/video/showdoc.aspx?i=3488&p=5

文章提出了一种可能,但没有现在可以用的办法,标准在等待制定,我感兴趣的就是这个标准如何制定。无论如何,让OpenGL 和 OpenCL协同工作都是一个相当大而有意思的想法,很期待。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/222831
推荐阅读
相关标签
  

闽ICP备14008679号