OpenGL特点及功能
OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发 的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:(以下内容部分来自网络)
1.建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。
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官方网站:http://www.opengl.org/
MS Windows系统中,OpelGL库(opengl32.dll)和GLU库(glu32.lib)都包含了,只要安装glut库。 glut库可以从这里下载:http://www.xmission.com/~nate/glut.html
OpenGL命名规则。例如定义顶点的函数有很多
glVertex3fv, glVertex3iv, glVertex3sv, glVertex4dv, glVertex4fv, glVertex4iv
数字部分:数字部分表示API的参数个数。例如glVertex2f有x,y两个参数。
d,f,i,s:表示参数的类型。d:GLdouble、f:GLfloat、i:GLint、s:GLshort。
v:表示数组
例子,画二维三角形的代码如下
glBegin(GL_TRIANGLES);
glVertex2f( 0.0, 0.5);
glVertex2f(-0.5, -0.5);
glVertex2f( 0.5, -0.5);
glEnd();
OpenGL在游戏开发中应用非常广泛,二维,三维的很绚丽的场景都能看到OpenGL的影子。
原文:https://blog.csdn.net/hantiannan/article/details/4529315
OpenGL特点及功能相关推荐
- iOS中使用OpenGL 实现增高功能
功能效果 demo示例 功能分析 功能:渲染一张传入的图片 -> 手动选择编辑区域 -> 通过滑块来编辑区域的增高或者缩短 OpenGL原理: 因为OpenGL 只能绘制三角形,所以在处理 ...
- 第三十九章、PyQt显示部件:OpenGL Widget部件功能简介及使用其显示图片
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 OpenGL Widget部件是一个Op ...
- android 触摸屏 旋转,android-使用OpenGl和触摸屏功能在视觉上纠正旋转
我一直在尝试为Android做魔方.我有一个关于轮换的问题.我想旋转一个外观正确的图形.这意味着如果用户触摸屏,并且在将手指向右移动之后,图形将从观察点的一侧向右旋转.但是当我旋转一些时,图形开始朝不 ...
- OpenGL中的颜色混合功能(一)
OpenGL中的颜色混合功能(一) 我们知道,材料属性和光照参数可以极大地增加图形的逼真度,但除此之外,我们在对现实世界进行建模时,有许多效果是通过混合颜色的方式实现的.透明 ...
- Learn OpenGL (二):三角形
知识补充: 顶点数组对象:Vertex Array Object,VAO 顶点缓冲对象:Vertex Buffer Object,VBO 索引缓冲对象:Element Buffer Object,EB ...
- 万字长文详解如何用Python玩转OpenGL | CSDN 博文精选
作者 | 天元浪子 来源 | CSDN博文精选 [编者按]OpenGL(开放式图形库),用于渲染 2D.3D 矢量图形的跨语言.跨平台的应用程序编程接口,C.C++.Python.Java等语言都能支 ...
- opengl版本发展史及各种概念的厘清
1.版本发展 1 opengl的版本区别 1.1 opengl1.1 1995年,SGI推出了更为完善的OpenGL 1.1版本.OpenGL 1.1的性能比1.0版提高甚多.其中包括改 ...
- 转贴: OpenGL开发库的组成
OpenGL开发库的组成 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenG ...
- opengl 反走样 混合 多重采样 blend multisample
1. 反走样 在光栅图形显示器上绘制非水平且非垂直的直线或多边形边界时,或多或少会呈现锯齿状或台阶状外观.这是因为直线.多边形.色彩边界等是连续的,而光栅则是由离散的点组成,在光栅显示 ...
最新文章
- 编译 ORB_SLAM2 (一)
- 网站禁止复制怎样操作
- WPF中实现文件夹对话框(OpenFileDialog in WPF)
- Unity User Group深圳站——Timeline Cinemachine分享
- Tianlesoftware Oracle 学习 手册 第一版
- 基于VMware vSphere 5 企业虚拟化部署之六:VMware Center管理ESXi和配置资源池
- Spring WebClient和Java日期时间字段
- python接口自动化测试二十四:上传多个附件,参数化
- 惊!Python能够检测动态的物体颜色!
- Python将字符串转换为列表
- R语言之数据分析高级方法「时间序列」
- DI高速计数器编码器脉冲计数器PNPNPN输入模块高低电平
- WiFi过敏?没准是心病
- 2.1 分布式文件系统HDFS-使用
- 2015境外人气餐厅榜单!你吃过几家?
- 解决maven 引用JDK内部类编译错误 程序包:com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler不存在...
- 华为笔记本没有网线口_有的笔记本电脑没有网线插口吗?
- 软件体系结构的第二次实验(解释器风格与管道过滤器风格
- 反弹shell的十种姿势
- 移动端Web页面问题解决方案
热门文章
- @所有中小企业,腾讯安全免费开放基础安全能力,助力构建数字安全免疫力!...
- 深入浅出Linux操作系统进程管理与rpm包管理(四)
- 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术 Direct3D渲染五步曲
- ios swift圆形按钮和圆形图标
- 做有钱人并不难 四步让你成为有钱人
- creator游戏《Protecive goddess》(五)--- 微信小游戏发布流程
- SpringBoot-OneDay
- 解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c in position : illegal multibyte sequence
- 新手建站之【服务器租用】②
- Mininet系列实验(四):基于Mininet测量路径的损耗率