导航:首页 > 编程语言 > linuxopengl编程

linuxopengl编程

发布时间:2022-04-17 10:47:20

1. linux 下opengl编程 编译成功,运行不了!

我认为问题是显示较低级别的系统
例程找不到什么东西,以支持该库要求。你可以尝试同时测试老的和较新的版本上相同的硬件?

2. linux 下大部分显卡驱动对OPENGL支持不好

我对3D驱动开发是一点都不懂……
但肯定DirectX在Linux下是没啥用的,那是微软的接口~~
OpenGL接口Linux肯定支持,但貌似是比较挑显卡
其他还有什么3D驱动的接口我也不了解了
给你提供个思路:雷神之锤的3D引擎貌似是开源的,本身支持Linux平台,你可以去找一下相关的开源项目。把源代码拿来看看人家是怎么做的~~

3. 求问OpenGL在windows,linux,Mac三大系统上一般那都用哪些软件来开发

1.所有windows下的软件包括游戏都不能再Linux或mac下运行,他们是完全不同的系统,可执行文件是不能在不同系统下运行的。

2.基于上述原因,很多软件如果缺少Linux或Mac版本,那你就无法使用,这对一些有某种特定软件需求的人群来说就很麻烦,你可以寻找支持该系统的替代软件,但并不总是能百分之百地代替;但如果基于家庭用途,而且不是特定游戏的爱好者,你可以考虑别的系统;

3.三种系统的区别:
Mac OSX是苹果旗下电脑的专用系统,一直以来苹果电脑和其它电脑都是区分开来的(即Mac和PC),Mac OSX系统是作为Mac的一部分发售的,任何把Mac OSX系统用于PC的行为都是违法的(当然我们作为黑金塔爱好者不会在意),而且把OSX装在普通PC上是非常困难的。OSX比Windows更为易用(当然也因人而异),也能出色地完成PC上的任务(例如iLife和iWork,以及系统的Mail之类的都远强于Windows),但OSX在法律和兼容性(因为是用于Mac的系统,硬要在PC上用当然会有兼容性问题。。)上的局限,无法广泛地流传,由于用户群小,随之而来的问题比如网银(中国)对Mac缺乏良好的支持等等;
Linux是一类开源免费的操作系统,因此被广泛看好。Linux早就拥有了桌面版本,比如Ubuntu,也是类似于视窗的操作系统,可以像使用Windows那样操作。你可以得到正版免费的Ubuntu,甚至可以向Ubuntu申请正版光盘,当然也可以下载正版刻录。至于游戏,好像比Mac OSX还少。。。而且Linux版本众多,也是一大问题。。由于它的系统架构,拥有Windows无法拥有的一些特性(比如不会产生磁盘碎片等等)
Windows嘛,随着使用时间的积累,Windows会越来越臃肿,系统会越来越慢,貌似这是相对于Linux最大的缺点。但毕竟是使用人群最多的系统,所以得到了良好的支持~~

4. linux平台下的应用程序开发

除了使用qt gtk 其实还有很多图形库 像openGL 楼主如果想自己编写图形界面也是可行的 使用framebuffer 可以直接写屏 在grub启动项中加入 vga=791(具体值得看楼主显示器的分辨率等来看) 启动之后就会在/dev 文件夹底下会有一个fb0文件 打开文件将其映射到内存中 通过对这块内存的操作 就可以实现对屏幕的控制 像画点 画线 画图 等 再通过对鼠标及键盘设备文件的访问 就可以获得鼠标输入和键盘输入 通过这些 就可以实现一些图形控件 嵌入式中常用的 Qt/E 就是基于framebuffer的 楼主可以上网查查framebuffer编程 再多看看计算机图形学的书 了解一些常用高效的画线画图方法

5. 如何在Linux I/O 重定向的一些小技巧

·The XFree86 Project XFree86是由X11R6发展出来的最初专门给Intel X86 结构PC机使用的X Window的系统。而后XFree86发展成为几乎适用于所有类UNIX操作系统的X Window系统。XFree86是一个开放源代码的基于X11的桌面基础构架。Red Hat 9中使用的X Window系统就是 XFree86 4.3。XFree86从2004年发布的版本4.4起不再遵从GPL许可证发行,而是遵循新的XFree86 1.1 许可证。由于XFree86不再遵从GPL许可证发行,导致许多发行套件不再使用XFree86,转而使用Xorg。XFree86官方网站是http://www.xfree86.org/ ·The XOrg Foundation(X.org) Xorg 是由 X.Org 基金会发行的开放源代码 X Window 系统实现的 X 服务。Xorg 遵从GPL许可证发行。Xorg 基于 XFree86 4.4RC2 和 X11R6.6 的代码。X.Org 基金会在 2004 年 4 月发布了 X11R6.7。在 2005 年 2 月发布了 X11R6.8.2。由于在XFree86 4.4最终版本采用新许可证问题上的分歧,Xorg服务器的第一个版本X11R6.7.0从XFree86 4.4 RC2派生出来,并加入了X11R6.6的一些改动。许多原先XFree86的开发者加入了这个比XFree86更开放的项目。XOrg服务器逐渐在开源Unix风格操作系统中流行。它被以下发行版本采用以代替XFree86:Gentoo Linux, Fedora Core, Slackware, SUSE, Mandrake Linux, Ubuntu Linux等。基本特色:基本和xfree86一样。已经成为主流,支持的非常的多。7.0实现模块化。7.0支持使用xgl模块,可以实现桌面3d效果,非常的不错。官方网址:http://www.x.org/ 在Linux中使用以上两个组织的驱动都可以实现3D加速,自从KP和授权修改事件以来,XFree86的支持率真的是跌倒了低谷,各大发行版纷纷转向Xorg。本文以后者为准。 ·3D API API是Application Programming Interface的缩写,是应用程序接口的意思,而3D API则是指显卡与应用程序直接的接口。3D API能让编程人员所设计的3D软件只要调用其API内的程序,从而让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。 如果没有3D API在开发程序时,程序员必须要了解全部的显卡特性,才能编写出与显卡完全匹配的程序,发挥出全部的显卡性能。而有了3D API这个显卡与软件直接的接口,程序员只需要编写符合接口的程序代码,就可以充分发挥显卡的不必再去了解硬件的具体性能和参数,这样就大大简化了程序开发的效率。 同样,显示芯片厂商根据标准来设计自己的硬件产品,以达到在API调用硬件资源时最优化,获得更好的性能。有了3D API,便可实现不同厂家的硬件、软件最大范围兼容。比如在最能体现3D API的游戏方面,游戏设计人员设计时,不必去考虑具体某款显卡的特性,而只是按照3D API的接口标准来开发游戏,当游戏运行时则直接通过3D API来调用显卡的硬件资源。 目前个人电脑中主要应用的3D API有DirectX和OpenGL。DirectX目前已经成为游戏的主流,市售的绝大部分主流游戏均基于DirectX开发,例如《帝国时代3》、《孤岛惊魂》、《使命召唤2》、《Half Life2》等流行的优秀游戏。而OpenGL目前则主要应用于专业的图形工作站,在游戏方面历史上也曾经和DirectX分庭抗礼,产生了一大批的优秀游戏,例如《Quake3》、《Half Life》、《荣誉勋章》的前几部、《反恐精英》等,目前在DirectX的步步进逼之下,采用OpenGL的游戏已经越来越少,但也不乏经典大作,例如基于OpenGL的《DOOM3》以及采用DOOM3引擎的《Quake4》等,无论过去还是现在,OpenGL在游戏方面的主要代表都是着名的ID Software。 ·OpenGL 继DirectX后,OpenGL可说是下一个最受欢迎的3D API。其实OpenGL比DirectX存在的时间更久,相对于DirectX只可以应用在微软的平台,OpenGL则可以应用在很多不同的操作系统上。目前,大多数Linux下的3D加速游戏采用的都是OpenGL,因此对于nVIDIA最新的驱动程序,只需做很小的改动就可以适于大多数的游戏。Linux下的3D API是基于OpenGL的。OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。 OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。 OpenGL是个与.硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。 OpenGL不是自由软件,它的版权、商标(OpenGL这个名字)都归SGI公司所有。但在Linux下有OpenGL的取代产品:Mesa。Mesa提供和OpenGL几乎完全一致的接口,对利用OpenGL API编程的人来说,几乎感觉不到任何差异。Mesa是遵循GPL协议(部分遵循LGPL协议)的自由软件,而且,正是由于Mesa的自由性,它在对新硬件的支持度等方面都超过了OpenGL。Mesa可以从www.mesa3d.org取得。在Linux下开发OpenGL程序,最常用的工具是GLUT(The OpenGL Utility Toolkit)。它可以创建一个或多个OpenGL窗口,响应、处理用户的交互操作、简单的弹出式菜单以及一些内置的绘图和字体处理功能。GLUT和OpenGL一样,可以移植于多种平台。由于它良好的表现,现在它已经成为Mesa发布的标准套件之一。 ·DRI,全称 Direct Rendering Infrastructure,是 X 窗口系统里允许应用程序以一种安全有效的方式直接访问显示设备的框架。它包括对 X 服务器,某些X客户端库和内核的改动。DRI 的第一个主要应用是创建快速的 OpenGL 实现。DRI 是 XFree86 4.x 以及其后继者 X.org 的组成部分,也是 Mesa -个 OpenGL API 的开源实现-的组成部分。有一些3D加速驱动是按照 DRI 标准写成的,包括 ATI,Matrox,3DFX 和 Intel。 DRI 最初是由 Precision Insight, Inc. (PI) 公司在 Red Hat Inc. 和 SGI 的合作和部分资助下开发的。随着 PI 被 VA Linux 所收购,以及后来 VA Linux 退出 Linux 领域,DRI 现在由Tungsten Graphics Inc.公司继续维护。该公司由当初 PI 公司的一些 DRI 开发者所创建。Tungsten Graphics 是目前所有 DRI 开发的焦点,许多开源开发者通过 sourceforge 上的 DRI 项目继续为 DRI 贡献代码。

希望采纳

6. 如何在Linux下使用OpenGL+ C++开发

前提是:
1.配置好了Ubuntu下的c++环境,gcc以及g++可用。
2.使用eclipse for c+做OpenGL开发

步骤一:
在ubuntu终端下运行以下命令,安装opengl所需要的库文件
$ sudo apt-get install build-essential
$ sudo apt-get install freeglut3-dev

步骤二:

运行一下opengl实例,测试配置的环境是否安装成功
在eclipse下新建一个工程文件,假设我们命名为Test,在工程Test里面新建一个C++源代码文件,这里我们把它命名为main.cpp,在main.cpp文件中打入一下代码

#include<GL/glut.h>
voidinit();
voiddisplay();
intmain(intargc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(0,0);
glutInitWindowSize(300,300);
glutCreateWindow("OpenGL3DView");
init();
glutDisplayFunc(display);
glutMainLoop();
return0;
}
voidinit()
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glOrtho(-5,5,-5,5,5,15);
glMatrixMode(GL_MODELVIEW);
gluLookAt(0,0,10,0,0,0,0,1,0);
}
voiddisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0,0);
glutWireTeapot(3);
glFlush();
}

右击工程文件名
Test->点击属性(Properties)->C/C++Bulid->Settings->GCC C++Linker->Libraries,
在这个窗口中添加几个个库,
分别为GLU,glut,GL,
点击OK。
如果还想使用opencv,
在这里还加入cv,cxcore,highgui等库文件,
根据自己的需要来定
同时在GCC C++ Compiler->Includes下的incudepath中添加路径/usr/include/GL
如果还想使用opencv中的库,那么加入opencv的路径,一般是/usr/include/opencv

运行以上程序,会显示一个茶壶形状的opengl运行结果

7. 如何学习linux平台上的网络编程

呵呵,你问对人啦,我就是学习了C语言的基础知识(谭浩强的那本书),然后学习了网络编程。现在在做linux云计算
你需要找到《UNIX网络编程第1卷:套接口API》
看这个书的同时,你从网上找些最简单的网络通讯程序小例子看看,对比书的介绍,很快你就会做个简单的聊天工具。
然后:《UNIX网络编程第2卷:进程间通信》
尝试做个具备一定并发量的Server端程序,使用多线程方式。

用这本书做你的学习的总线,网上搜索学习做验证,测试。相信很快可以学会。

如果对你有帮助,请给分哦,谢谢!

8. 如何学习android/linux显卡驱动(2D/3D,openGL等等)

显卡驱动不用学了,都是一些总线输入输出的内容,要做东西的话没太大用。 opengl可以看看, 了解显卡的渲染管线, 可编程位置, 显存(顶点缓存,纹理缓存)使用和cpu与显卡之间的数据传递方式。 再了解最基本的矩阵运算概念(投影矩阵,顶点移动矩阵,顶点旋转矩阵), 以及着色器工作原理(高级渲染脚本,顶点,片段着色器), 渲染后的数据以及存储位置(帧缓存), 以及如何输出(双缓冲)。 对数据格式有一定的认识(RGB等颜色空间,片段,光栅化。。)就可以了。 如果有基础, 上网看看一个星期就可以了解完, 忙的话一两个月也可以。

9. openGL是什么是不是一个软件

OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

OpenGL是个与.硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。

在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,该语言是“OpenGL 2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。

OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。

目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户的认知程度并不高,未来的OpenGL发展前景迷茫。

Open GL现状

Open GL仍然是唯一能够取代微软对3D图形技术的完全控制的API。它仍然具有一定的生命力,但是Silicon Graphics已经不再以任何让微软不悦的方式推广Open GL,因而它存在较高的风险。游戏开发人员是一个有着独立思想的群体,很多重要的开发人员目前仍然在使用Open GL。因此,硬件开发商正在设法加强对它的支持。Direct3D目前还不能支持高端的图形设备和专业应用; Open GL在这些领域占据着统治地位。最后,开放源码社区(尤其是Mesa项目)一直致力于为任何类型的计算机(无论它们是否使用微软的操作系统)提供Open GL支持。

高级功能
OpenGL被设计为只有输出的,所以它只提供渲染功能。核心API没有窗口系统、音频、打印、键盘/鼠标或其它输入设备的概念。虽然这一开始看起来像是一种限制,但它允许进行渲染的代码完全独立于他运行的操作系统,允许跨平台开发。然而,有些整合于原生窗口系统的东西需要允许和宿主系统交互。这通过下列附加API实现:

* GLX - X11(包括透明的网络)
* WGL - Microsoft Windows

另外,GLUT库能够以可移植的方式提供基本的窗口功能。

10. 在Linux上怎么安装OpenGl

在linux下opengl编程,首先需要安装glut包。 1 安装glut (1)下载地址: http://fidelio.cacs.louisiana.e/resources/linux/glut.zip (2)将glut.zip解压: unzip glut.zip 解压后

阅读全文

与linuxopengl编程相关的资料

热点内容
dns使用加密措施吗 浏览:172
php独立运行 浏览:530
手机sh执行命令 浏览:727
云服务器的角色 浏览:733
单片机频率比例 浏览:840
我的世界服务器如何关闭正版验证 浏览:504
如何查roid服务器上的 浏览:130
安卓手机主板如何撬芯片不掉电 浏览:249
php各个框架的优缺点 浏览:101
php1100生成数组 浏览:359
以后做平面设计好还是程序员好 浏览:552
云服务器应用管理 浏览:438
饥荒云服务器搭建过程 浏览:186
可编程控制器优点 浏览:99
压缩垃圾车说明书 浏览:28
五轮书pdf 浏览:802
单片机定时流水中断系统流水灯 浏览:701
u8如何连接服务器配置 浏览:68
动力在于缓解压力 浏览:867
报考科一用什么app 浏览:346