开放图形库(OpenGL) 是一个跨语言(独立于语言)、跨平台(独立于平台)的API,用于渲染2D和3D矢量图形(使用多边形表示图像)。OpenGL API主要是在硬件上设计的。
null
- 设计: 此API定义为一组可由客户端程序调用的函数。虽然功能与 C 但它是独立于语言的。
- 发展: 它是一个不断发展的API和 科罗诺斯集团 定期发布新版本,与前一版本相比有一些扩展功能。GPU供应商还可以以扩展的形式提供一些附加功能。
- 相关图书馆: 最早的版本与名为OpenGL实用程序库的配套库一起发布。但由于OpenGL是一个相当复杂的过程。因此,为了使它更容易,添加了其他库,如OpenGL实用工具工具包,它后来被免费glut取代。后来包括了GLEE、GLEW和gliding。
- 实施: Mesa 3D是OpenGL的开源实现。它可以进行纯软件渲染,还可以利用直接渲染基础设施在BSD、Linux和其他平台上使用硬件加速。
在Ubuntu上安装OpenGL 要在Ubuntu上安装OpenGL,只需在终端中执行以下命令(就像安装任何其他东西一样):
sudo apt-get install freeglut3-dev
在Ubuntu操作系统上工作:
gcc filename.c -lGL -lGLU -lglut where filename.c is the name of the filewith which this program is saved.
在windows上以代码::块的形式安装OpenGL
- 下载代码块并安装它
- 去医院 链接 并从freeglut MinGW包后面出现的下载链接下载zip文件,链接名为download freeglut 3.0.0 for MinGW,并将其解压缩。
- 使用“以管理员身份运行”打开记事本,并从中打开文件
- 这台电脑>C:(C-drive)>程序文件(x86)>代码块>共享>代码块>模板(然后单击以显示所有文件)
- 接下来,开放式过剩。美国海关与边境保护局,搜索所有 32 并替换为 免费供应 .
- 然后,从这台电脑上打开>C:(C-drive)>程序文件(x86)>代码块>共享>代码块>模板>向导>glut(然后单击以显示所有文件)
- 打开向导。脚本和此处,也替换所有 32 具有 免费供应
- 那就去 免费供应 文件夹(下载它的地方)和
- 包括>总账并从中复制所有四个文件
- 进入这台电脑>C:(C-drive)>程序文件(x86)>代码块>MinGW>包含>GL并粘贴它。
- 然后,从下载文件夹freeglut>lib复制两个文件,然后转到这台PC>C:(C-drive)>Program files(x86)>CodeBlocks>MinGW>lib并粘贴它。
- 再次转到下载的文件夹freeglut>bin,从这里复制一个文件(freelut.dll),然后转到这台PC>C:(C-drive)>Windows>SysWOW64并粘贴此文件。
- 现在打开代码::块。
- 选择文件>新建>项目>GLUT项目>下一步。
- 给项目标题任何东西,然后选择下一步。
- 选择GLUT的位置:这台电脑>C:(C-drive)>程序文件(x86)>代码块>MinGW。
- 按OK>Next>Finish。
现在,Code::Blocks已经准备好测试OpenGL文件。
演示如何使用OpenGL
为了展示OpenGL是如何工作的,在C语言中使用OpenGL平台添加了一个简单的圆形绘图程序。
C
// C program to demonstrate // drawing a circle using // OpenGL #include<stdio.h> #include<GL/glut.h> #include<math.h> #define pi 3.142857 // function to initialize void myInit ( void ) { // making background color black as first // 3 arguments all are 0.0 glClearColor(0.0, 0.0, 0.0, 1.0); // making picture color green (in RGB mode), as middle argument is 1.0 glColor3f(0.0, 1.0, 0.0); // breadth of picture boundary is 1 pixel glPointSize(1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); // setting window dimension in X- and Y- direction gluOrtho2D(-780, 780, -420, 420); } void display ( void ) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); float x, y, i; // iterate y up to 2*pi, i.e., 360 degree // with small increment in angle as // glVertex2i just draws a point on specified co-ordinate for ( i = 0; i < (2 * pi); i += 0.001) { // let 200 is radius of circle and as, // circle is defined as x=r*cos(i) and y=r*sin(i) x = 200 * cos (i); y = 200 * sin (i); glVertex2i(x, y); } glEnd(); glFlush(); } int main ( int argc, char ** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // giving window size in X- and Y- direction glutInitWindowSize(1366, 768); glutInitWindowPosition(0, 0); // Giving name to window glutCreateWindow( "Circle Drawing" ); myInit(); glutDisplayFunc(display); glutMainLoop(); } |
要在Ubuntu中编译上述程序,
gcc filename.c -lGL -lGLU -lglut -lm where filename.c is the name of the filewith which this program is saved.
以上程序的输出如下图所示
代码::块中的安装参考: https://www.youtube.com/watch?v=NPcnymtP2SE
本文由 阿迪蒂亚·库马尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END