OpenGL基础入门及准备

一、计算机图像学相关概念

1.1 计算机图形学,是一种使用数学算法将二维或三维图形转化为计算机显示器所能显示的二维栅格形式的科学。

1.2 屏幕像素组成的网格即称为栅格。

1.3 计算机图形学研究

  • Modeling:构造场景的三维模型,建模;
  • Rendering:将三维场景渲染到屏幕上,根据三维模型,计算屏幕窗口中每个像素点的颜色,像素点颜色与光照、环境以及物体材质等因素有关,如下图中,展示的间接漫射光与焦散现象;
    • 间接漫射光与焦散现象;

在这里插入图片描述
在这里插入图片描述

  • Animation:动画
    • 关键帧技术;
    • 过程动画;
    • 基于物理的动画技术;
    • 关节动画;
    • Morphing和deformation(空间变形)技术;

1.4 Rendering

是一个3D model -> 2D images的过程,主要可以分为两大类方法。

  • 逐像素绘制,即光线投射或光线跟踪;
    在这里插入图片描述
  • 逐面片绘制:绘制速度较快,比较成熟,形成了固化在显卡里的图形流水线。
    在这里插入图片描述
    逐面片绘制的方式,把模型的每个面片进行投影、光栅化(Rasterization)。
    • 投影:三维变换到二维;
    • 光栅化:计算面片所覆盖的栅格。

1.5 Graphics Pipeline(图形流水线)

  • 在计算机中将3D模型转化为屏幕上的图像需要经过的一系列处理步骤,这个处理步骤就是图形流水线。
    在这里插入图片描述
    主要步骤可以简化为:
    在这里插入图片描述

1.6 本模块采用OpenGL作为基础图形库、freeglut作为辅助开发库、采用glew作为扩展功能库来进行开发。

  • OpenGL是一个图形硬件的程序接口。
    在这里插入图片描述
  • aux、glut、freeglut、glfw库
    • 提供了管理窗口的功能;
    • 加入了键盘、鼠标等交互接口;
    • 提供了右键菜单等交互功能;
    • 提供了一些“高级”建模函数,如glutSolidTeapot();

1.7 图形流水行是一个固定的处理步骤,OpenGL相关函数可以理解为对这个流水线进行参数设置。GPU在Vertex OperationsFragment Operations两个模块中具有可可编程功能。通过Vertex Shader 或Fragment Shader(Pixel Shader)编程来实现相关功能。

  • 可直接在Vertex Shader中编程控制顶点的各种属性;省去了在CPU中计算顶点的位置在传输到GPU中的耗时;通过Vertex Shader只需要传输一次,后面的计算顶点位置的计算都在GPU中进行,效率高;
    在这里插入图片描述

  • 可以直接在Fragment shader中编程控制片元、像素的各种属性;

  • 随之技术的发展,GPU中增加了一个Geometry shader模块,能能根据GPU中输入的源数据生成新的顶点和面片,可以在GPU中细化模型;

在这里插入图片描述

1.8 相关例子
在这里插入图片描述
1.9 shader编程
采用GLSL编程语言。

1.20 GPU高性能计算

  • 高性能计算;
  • 大计算量任务:医学、化学、生物、金融、科学计算、图像处理等领域;
  • 人工智能;
  • 区块链;
    上述大量计算都可以采用GPU来计算。

通用并行计算平台,使得不具备计算机图形基础得人可以采用GPU进行通用计算(GPGPU)。

  • CUDA
  • OpenCL

二、freeglut、glew环境配置

http://freeglut.sourceforge.net/
http://glew.sourceforge.net/

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

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

相关文章

使用nodejs和art-template模板引擎实现apache的部分功能

升级一下上一篇的功能 首先还是配置:config.js module.exports {host: http://127.0.0.1, //主机名port: 3000, //服务器端口号documentRoot: E:/webdev, //根目录directoryBrowse: true, //是否开启目录浏览功能directoryIndex: [ //目录默…

哈佛商业评论:什么是颠覆性创新?

来源:点滴科技资讯什么是颠覆性创新?在引入该理论 20 年后,我们重新审视了它所解释的和未解释的。本文发表于哈佛商业评论(2015 年 12 月) 作者:克莱顿 M.克里斯滕森, 迈克尔E雷诺,和…

定长掩码地址划分与VLSM子网划分

定长掩码地址划分 案例 若某个公司得到一个C类网络地址210.33.15.0,假如所有子网的掩码都一样,该如何划分子网? 步骤一:确定子网个数 7个子网,其中4个局域网,3个广域网 步骤2:确定每个子网所需…

OpenGL之几何、投影、裁剪、视口变换以及全局变换与局部变换

一、变换的概念 1.1 图形流水线 1.2 变换(Transformation) 变换主要分为四个步骤,主要就是在Vertex operations阶段操作顶点信息,会在流水线中依次进行。 几何变换投影变换裁剪视口变换 三维模型到二维图形的主要变换过程&am…

WinForm中DataGridView的TextBoxColumm换行

一、内容超过显示宽度自动换行: 在需要自动换行的列中设置 二、换行符换行: 一开始在需要换行的文本添加"\r\n"并不能直接换行,DGV直接把\r\n显示出来了,后换成 System.Environment.NewLine 解决问题转载于:https://www…

无类别地址CIDR概述

问题 IPv4的地址空间最终将全部耗尽子网掩码无法改变IP地址的分配方式,无法缓解IP地址危机 CIDR概述 CIDR是无类别域间路由CIDR取消了IP地址的分类限制,可以取IP地址的任意前缀作为网络号CIDR改善了IP地址的分配方式,缓解了IP地址危机CIDR…

刷脸背后,卷积神经网络的数学原理原来是这样的

来源:深度学习这件小事计算机视觉技术在日常生活中有着非常普遍的应用:发朋友圈之前自动修图、网上购物时刷脸支付……在这一系列成功的应用背后,卷积神经网络功不可没。本文将介绍卷积神经网络背后的数学原理。在自动驾驶、医疗以及零售这些…

OpenGL之坐标系以及单位

1.1 OpenGL中默认的坐标系为右手坐标系,默认视点位置为原点,原点正好投影在投影窗口的中心,也正好投影在视口的中心。 1.2 在OpenGL中无绝对单位,只有相对的大小,相对于视锥体的大小来设定物体的大小。 1.3 通过估算…

人工智能设计芯片,比你想象的更大胆

来源:ZDNet作者:Tiernan Ray编译:科技行者AI(人工智能)技术正在越来越多地被应用于半导体设计之中,这种做法的优势之一是,人工智能技术会尝试人类想都不敢想的设计方案。例如,对边际…

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

1.1 OpenGL Library核心库 包括115个函数,前缀为 :gl,主要在gl.h、openGL32.lib,openGL32.dll中; 1.2 OpenGL utility library 实用程序库 包含43个函数,前缀:glu;主要为核心库的…

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

winfrom导出DataGridView为Excel方法

声明&#xff1a;此方法需要电脑安装Excel软件 需要类库&#xff1a;Microsoft.Office.Interop.Excel.dll 可百度自行下载 方法代码&#xff1a; /// <summary>/// 导出exc/// </summary>/// <param name"dataGridView"></param>/// <pa…

计算机网络——因特网的接入技术

因特网接入与ISP ISP&#xff1a;Internet服务供应商&#xff0c;为接入Internet提供基本的服务 一、模拟拨号 早期使用调制解调器&#xff08;Modem&#xff09;和常规的语音级电话线路早期使用最为广泛&#xff0c;最大带宽56Kb/s【下一首歌差不多要30分钟、上网就不能打电…

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

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

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

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

【Codeforces 1096D】Easy Problem

【链接】 我是链接,点我呀:) 【题意】 让你将一个字符串删掉一些字符。 使得字符串中不包含子序列"hard" 删掉每个字符的代价已知为ai 让你求出代价最小的方法. 【题解】 设dp[i][j]表示前i个字符,已经和"hard"匹配前j个的最小花费。 对于dp[i][j] 对s[i…

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

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