1. 首页 > 智能数码 >

opengl用的什么语言_opengl一般用什么语言写

那就看你面向什么平台了

opengl用的什么语言_opengl一般用什么语言写opengl用的什么语言_opengl一般用什么语言写


一般来说,桌面或掌上设备的OpenGL还是用类C语言来开发。

java也可以,现在已经有OpenGL

for

JAVA的JDK了,你可以找找,祝学习顺利。

OpenGL是由那种编程语言实现的

windows api不是c语言实现的?你开玩乐么

OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库

opengl是个3D图形接口。几乎任何软件都可以用opengl来实现3D效果。比如c语言,delphi,vb,易语言等

那就看你面向什么平台了

一般来说,桌面或掌上设备的OpenGL还是用类C语言来开发。

java也可以,现在已经有OpenGL for JAVA的JDK了,你可以找找,祝学习顺利。

严格来说openGL不是编程语言,而是图形API,即应用程序接口。

OpenGL是图形API, java C# C是编程语言.

在Android上用OpenGL ES开发3D游戏用什么语言?Java or C/C++?

对,没错。OpenGL ES支持Java作为宿主语言。不过如果是OpenGL ES2.0的话,需要用到渲染管线时可能需要一些着色器语言作为支撑。 而楼上所说的物理引擎都是需要花大价钱获得使用权的,但像Jbullet这种开源免费的3D引擎就是使用java实现的,网上可以免费下到jar包。本人也从事过android平台上的3D游戏开发,希望能帮到你。^_^

android 本身内核是linux 而linux是用C写的. 3D游戏当然得要游戏引擎 ,楼主是要自己用openfl ES来独自写一个引擎吗,听说引擎很难呀. 一些有名的3D引擎 都移植到android 上了 .比如 虚幻3 ,unity3D .而这些引擎 没有听说 过 用java来写的.当然是C++

(1) OpenGL简介

OpenGL是近几年发展起来的一个性能卓越的三维图形标准,它是在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。目前,包括Microsoft、SGI、IBM、DEC、SUN、HP等大公司都采用了OpenGL做为三维图形标准,许多软件厂商也纷纷以OpenGL为基础开发出自己的产品,其中比较著名的产品包括动画制作软件Soft Image和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件ProEngineer、GIS软ARC/INFO等等。值得一提的是,随着Microsoft公司在Windows NT和最新的Windows 95中提供了OpenGL标准及OpenGL三维图形加速卡(如北京黎明电子技术公司的AGC-3D系列三维图形加速卡)的推出,OpenGL将在微机中有广泛地应用,同时也为广大用户提供了在微机上使用以前只能在高性能图形工作站上运行的各种软件的机会。

(2)OpenGL特点及功能

OpenGL实际上是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:

1) 建模 OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面(如Bezier、Nurbs等曲线或曲面)绘制函数。

2) 变换 OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、 旋转、变比镜像四种变换,投影变换有平行投影(又称正射投影)和透 视投影两种变换。其变换方法与机器人运动学中的坐标变换方法完全一致,有利于减少算法的运行时间,提高三维图形的显示速度。

3) 颜色模式设置 OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。

4) 光照和材质设置 OpenGL光有辐射光(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和镜面光(Specular Light)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光 的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。

5) 纹理映射(Texture Mapping):利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。

6) 位图显示和图象增强:图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可是被仿真物更具真实感,增强图形显示的效果。

7) 双缓存(Double Buffering)动画:双缓存即前台缓存和后台缓存,简而言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。此外,利用OpenGL还能实现深度暗示(Depth Cue)、运动模糊(Motion Blur)等特殊效果。从而实现了消隐算法。

简单的说OpenGL是个3D标准

不知道你说的提高数值是什么意思?

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发展前景迷茫。

OpenGL就是基于C语言的,当然可以使用C语言。关于C语言的一本很好书籍为:《OpenGL 超级宝典》现在有第三版中译本,建议使用第二版。我就是靠它入门的。

你上面所说的步骤是正确的,最后在工程编译时,在工程中加入需要的库,有关命令行加入,glu32 opengl32 glut32库就可以编译了。

注意glut.h文件中已经包含gl.h,glu.h在实际编译中可以只加入头文件glut.h,很多相关的例子都是这样的,但是我在mingwstudio上编译发现,在glut.h前还是需要加入glu.h, gl.h.如:

#include

#include

#include

才能成功编译。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息