OpenGL之相关库介绍及基本语法、The OpenGL Machine

1.1 OpenGL Library核心库

  • 包括115个函数,前缀为 :gl,主要在gl.h、openGL32.lib,openGL32.dll中;

1.2 OpenGL utility library 实用程序库

  • 包含43个函数,前缀:glu;
  • 主要为核心库的再封装,使函数更方便使用,一般参数更易懂;主要在glu.h、glu.lib、glu.dll中;

1.3 OpenGL跨平台性,OpenGL的核心库和实用库接口可以在任何OpenGL的实现平台上使用。跨平台的指的是,OpenGL的接口函数的定义完全统一,不同平台函数内部实现不同。

1.4 辅助的OpenGL编程工具库

  • freeglut:free OpenGL Utility Toolkit
  • 需要glut.h、freeglut.h freeglut32.lib、freeglut32.dll;
  • freeglut功能:
    • 执行与窗口相关的功能;
    • 鼠标、键盘交互功能;
    • 右键菜单功能;
    • 高层的建模命令;

1.5 OpenGL函数的命名规则

  • void glVertex3fv(Glfloat* vertex);
  • 前缀:gl、后缀:3fv;
  • 前缀表明了函数所属的库,后缀表明了参数的维度,参数的类型,以及传入的方式;
  • 数值表示参数的维度;
  • 参数的类型:b、s、l、f、d、ub、us、ui;
  • v:以数组的形式传入,否则依次列举参数传入;
    在这里插入图片描述
  • OpenGL重新定义这些参数的原因是为了跨平台,不同的平台相关的类型实际可能存在差别;
glVertex3f(3.0f,4.0f,5.0f);
GLfloat v[3] = {3.0f,4.0f,5.0f};
glVertex3fv(v);
  • 颜色四分量:Red、Green、Blue和Alpha;可以是0 - 1之间的浮点数、也可以是 0 - 255的无符号整数;
glColor4f(1.0f,0.0f,0.0f,0.5f);
glColor3ub(255,0,0);
  • OpenGL的常量符号:GL_RGB、GL_POLYGON、GLUT_RGBA、GLUT_DOUBLE;

1.6 OpenGL中基本图元的绘制

  • 在glBegin()和glEnd()之间绘制基本图元;还可以在里面设置顶点的法相和颜色等属性信息;
  • Color:glColor*();
  • Normal :glNormal*();
glBegin(GL_TRIANGLES);glColor3fv(c0);glVertex3f(x1,y1,z1);glColor3fv(c1);glVertex3f(x2,y2,z2);glColor3fv(c2);glVertex3f(x3,y3,z3);
glEnd();

在这里插入图片描述

  • GL_TRIANGLE_STRIP:前三个点构成一个三角形,后面每增加一个点,增加一个三角形;可以减少传入的顶点数;
  • 在OpenGL3.1之后,GL_POLTGON、GL_QUADS、GL_QUAD_STRIP已被取消;

1.7 OpenGL函数用法查询方法

  • MSDN :https://docs.microsoft.com/zh-cn/windows/win32/opengl/glteximage2d
  • Khronos官网查询;

1.8 glutIdleFunc(display):无重绘消息时,定时调用窗口重绘;也可以手动发送重绘消息,采用函数glutPostRedisplay();

1.9 OpenGL状态机

  • OpenGL是一个状态机,OpenGL函数负责设置图形流水线的相关参数,如下图左边,为相关参数输入的接口,状态机自动按照图形流水线执行,并把相关参数用于计算,最终渲染出场景。
    [https://www.lri.fr/~mbl/ENS/IG2/docs/opengl-stm.pdf]
    在这里插入图片描述

附录:中国大学Mooc、图形编程技术、北京林业大学、杨刚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb从开发环境搭建,到第一个servlet程序(图文)

## 开学到今天,已经是第三周了~ 然而这门课的教材还没发~ 滋滋滋 表示很“蓝瘦”~~~ Java Web开发环境搭建 1、 下载安装Tomcat 官网地址:http://tomcat.apache.org/ 选择Tomcat 8 -- (如图所示) --选择 zip 文件 --下载后,将压缩包中的…

远望智库未来产业研究院与资本实验室联合发布《2021全球区块链应用市场报告》...

来源:远望智库预见未来从以比特币为代表的区块链1.0时代;到以智能合约为媒介,以金融应用为核心的区块链2.0时代;再到区块链应用于政务服务和更广泛的各行业,并开始推动信息互联网向价值互联网靠拢,短短10余…

因特网的硬件组成

终端系统 主机、服务器、PDA 通信介质 有线介质:双绞线、同轴电缆、光纤无线介质:无线电波、卫星 中间设备 路由器、交换机等 路由器 路由器的产生 由思科公司创始人伯塞克发明 路由器的特性和作用 存储转发机制连接异构的网络 交换机 交换机的…

OpenGL之光照明模型、Phong光照模型与Blinn-Phong光照模型

1.1 光照效果 通过光照,能反映模型的空间几何形态,通过光照明模型,计算模型表面任一点被光照后投射到观察者眼中的光亮度的大小。光照的计算就是计算投射到观察者眼中的光,这部分光与物体与光源的位置、物体与视点、物体表面的材质…

谈人工智能:深度学习对老牌AI

来源:李晓榕科学网博客链接地址:http://blog.sciencenet.cn/blog-687793-1300748.html学:学生,教:教师,李:李晓榕李:三代人工智能都各有所本、各有所倚,也就各有所偏&…

OpenGL之Phong光照模型和Blinn-Phong光照模型的局限性、OpenGL光照参数设置与光照模式

一、相关概念 1.1 Phong、Blinn-Phong光照模型是一种简单光照模型,它仅考虑了光源直接照射的效果,没有考虑非直接光照的效果。如下直接光照与间接光照。 1.2 上述模型在考虑间接光照(环境光)时,采用的是一个常数来表…

OpenGL之图形流水线中的光照计算、明暗处理

1.1 光照计算发生在图形流水线的Vertex Operations中,只计算每个顶点的颜色,而三角形内部的点的颜色在Fragment Operations阶段通计算,这样效率高,因为像素的数量远远大于顶点的数量。 1.2 计算三角形内每个像素的颜色的过程&am…

教学5层网络体系结构——分层之后数据的发送和接收

协议分层后数据发送过程 发送方层层封装 接收方层层解封装 唯一加尾部的是数据链路层 思考 发送方某层封装完如何知道该交给哪个下层封装? 应用层选择传输层由应用程序决定,传输层选择网络层由固定的搭配,例如因特网只有IP协议&#x…

从视觉系统的原理入手 破解VR眩晕症

来源:EETimes编译:科技行者虚拟现实技术近年来迎来一波快速发展,适用范围也扩展到更多领域,引得众多老牌巨头纷纷参与。然而,VR技术自身仍存在一些极难解决的缺陷,如果无法攻克,技术的进一步普及…

小组会谈(2019.3.14)

一:会议主题 1.确定项目的立题 2.讨论需要实现的功能 3.确定小组成员之间的分工和完成各自任务的期限 二:会议地点 逸夫楼C座一楼 三:会议时间 2018年3月14日10:00--11:20 四:会议内容 1.项目的立题&#x…

应用层相关概念

一、应用层概述 1、应用层协议基本概念 应用层的功能 应用层协议定义了应用程序需交换的报文、所需采取的动作和最终通信数据的应用应用层位于协议栈的最高层次应用层协议提供不同主机之间进程与进程之间的通信用户代理实现应用层协议 套接字 IP端口号,唯一确定…

迎来智能数据分析的新时代

来源:知乎(ID:熊墨淼)最近两星期(7月15日,7月22日),《自然》杂志连续发表两篇DeepMind写的用人工智能的方法预测蛋白质三维结构的文章和NIH Director Francis Collins 写的博客 "Artificial Intelligence Accurately P…

2019春季第三周作业

2019年春季学期第三周作业基础作业 本周没上课,但是请大家不要忘记学习。 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。 例如:[1, -2, 3…

DNS域名系统详解

一、分层次的域名结构 顶级域名、 二级域名、 三级域名、 四级域名 二、因特网的域名结构 因特网采用了层次树状结构的命名方法,称为域名,如:www.jxnu.edu.cn 三级域名:如www表示万维网 二级域名:如jxnu表示江西师…

侯世达:让机器学习思考的人

图源:GREG RUFFING来源:利维坦文:James Somers原文:www.theatlantic.com/magazine/archive/2013/11/the-man-who-would-teach-machines-to-think/309529/译文原载:《新知》杂志侯世达(Douglas Hofstadter&a…

日记——2019-03-12

感遇(其一) 张九龄 兰叶春葳蕤,桂华秋皎洁。 欣欣此生意,自尔为佳节。 谁知林栖者,闻风坐相悦。 草木有本心,何求美人折? 我的爱人快乐而且善良,但是不容易,遇见——庞德…

www万维网和HTTP协议

万维网的相关概念 万维网的客户端程序 浏览器:IE、firefox、chrome 万维网的服务器端软件 IIS,Tomcat、Apache 万维网的模式 采用C/S模式 Web页面 由文字、图片、声音、视频等多种对象组成 HTTP协议 Web页面传输方式 如何标志分布在因特网上的…

游戏中应用强化学习技术,目的就是要打败人类玩家?

来源:AI前线作者:凌敏采访嘉宾:黄鸿波2016 年,DeepMind 公司开发的 AlphaGo 4:1 大胜韩国著名棋手李世石,成为第一个战胜围棋世界冠军的人工智能机器人,一时风头无两。AlphaGo 的巨大成功开启了“人工智能元…

HTTP报文的格式

一、HTTP请求报文的格式 两个回车换行表示首部的结尾注意:HTTP协议首部使用ASCII码作为编码方式HTTP请求报文提交表单时会包含数据 二、HTTP响应报文格式

Transformer走下神坛?南加州大学教授:想解决常识问题,神经网络不是答案

来源:nextgov转自:新智元编辑:LRS如果说人工智能和真正的人脑之间的差距,那最重要的就是机器缺乏生活中的常识。一切貌似合理、理所当然的事物在计算机眼中都是不可理解的。计算机不知道「柠檬是酸的」,「只有成熟的香…