IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> OpenGL基础入门及准备 -> 正文阅读

[游戏开发]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/

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章           查看所有文章
加:2022-07-04 23:17:42  更:2022-07-04 23:19:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:04:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码