GAMES101 计算机图形学 | 学习笔记 (上)

文章介绍了计算机图形学的基本概念,包括环境安装、坐标变换顺序、齐次坐标、光栅化原理以及抗锯齿技术,特别是针对C++中如何使用opencv、eigen和openGL库。还探讨了光栅化填充三角形的示例代码和抗锯齿滤波算法,如多重采样抗锯齿(MSAA)。

环境安装

1. C++中安装opencv库

2. C++中安装eigen库

3. C++中安装openGL库 步骤(1)glut下载

4. C++安装openGL库 步骤(2)VS中安装两个NuGet程序包

5. C++安装glew和glfw工具库
要注意的是 glew.h必须包含再glut.h之前

如下:

#include <glew.h>
#include <GL/glut.h>

什么是计算机图形学

计算机图形学是利用计算机技术进行图像和视觉内容的创建、处理和显示的领域。它包括2D和3D图形,并利用各种技术、算法和工具来生成、修改和渲染图像。
计算机图形学可以分为几个子领域:

  1. 渲染:从3D模型生成逼真或风格化图像的过程,考虑到光照、阴影和其他视觉效果。
  2. 建模:使用数学或几何技术创建物体或场景的数字表示。这涉及到定义物体的形状、结构和属性
  3. 动画:通过按顺序排列一系列图像或帧来创建运动的错觉。它涉及到关键帧、插值和骨骼动画等技术。
  4. 模拟和虚拟现实:利用计算机图形学来模拟真实世界的现象或创建沉浸式虚拟环境。这包括物理模拟、车辆或环境的虚拟模拟以及交互式虚拟现实体验。
  5. 图像处理:使用算法对数字图像进行操作和增强,以改善质量、去除噪声、提取信息或应用艺术效果。
  6. 计算机视觉:分析和解释视觉数据,提取有意义的信息或理解图像或视频的内容。这包括物体识别、图像分割和运动跟踪等任务。

计算机图形学在各个行业和领域都有应用,包括娱乐(电影、电子游戏)、设计和可视化(建筑、工业设计)、虚拟现实和增强现实、科学模拟、医学成像和数据可视化。它在创建视觉上吸引人和交互式的数字内容方面起着关键作用。

刘利刚教授:计算机图形学主要包含四大部分的内容:建模(Modeling)、渲染(Rendering)、动画(Animation)和人机交互(Human–computer Interaction, HCI)

物体上点的坐标变换顺序

在计算机图形学中,通常使用一系列变换将物体从模型空间(Model Space)变换到最终的屏幕空间(Screen Space)。这些变换的顺序可以根据实际需求进行组合。

在给定的坐标变换顺序"M->V->P"中,M代表模型变换(Model Transformation),V代表视图变换(View Transformation),P代表投影变换(Projection Transformation)。下面是每个变换的解释:

  1. 模型变换(Model Transformation)(M):
    模型变换将物体从模型空间转换到世界空间(World Space)。在这个变换中,物体的位置、旋转和缩放发生变化,以便将物体放置在正确的世界位置和大小
  2. 视图变换(View Transformation)(V):
    视图变换将物体从世界空间转换到相机或观察者的空间,也称为视口空间(View Space)或眼空间(Eye Space)。这个变换决定了观察者的位置和方向,通过这个变换可以实现摄像机的移动和旋转
  3. 投影变换(Projection Transformation)(P):
    投影变换将物体从视口空间转换到裁剪空间(Clip Space)。在裁剪空间中,物体被投影为二维坐标,并且应用了透视效果。投影变换可以是透视投影或正交投影,具体取决于所需的效果。

补充 两种投影变换

  1. 正交投影:正交投影是一种平行投影方式,它将物体投影到一个平行于观察平面的平面上。在正交投影中,物体在不同深度上的点被等比例地缩放到二维平面上,没有透视效果。所有平行线在投影后仍然保持平行,长度和角度都得到保持。这种投影方式常用于需要保持物体尺寸和形状的场景,如工程图和平面设计。

  2. 透视投影:透视投影是模拟人眼视觉效果的投影方式,具有近大远小的效果。在透视投影中,物体在不同深度上的点根据其距离观察者的远近而有所变化。离观察者更远的点在投影中被缩小,离观察者更近的点则被放大。透视投影通过模拟焦点和视角的概念,使投影更贴近真实的视觉感知。这种投影方式常用于计算机图形学中创建逼真的三维场景,如游戏、虚拟现实和电影特效。
    在这里插入图片描述
    左图是透视投影效果
    右图是正交投影效果

齐次坐标

齐次坐标可以将平移也表示为矩阵的乘法操作。
原因:
齐次坐标是一种扩展的坐标系统,由一组三维坐标(x, y, z)和一个额外的缩放因子(w)组成。在齐次坐标系中,一个点的坐标表示为(x, y, z, w)。
平移可以通过将一个点的坐标与平移矩阵相乘来实现。平移矩阵是一个4x4的矩阵,形式如下:
在这里插入图片描述
其中,(tx, ty, tz) 是平移的向量,表示在 x、y、z 方向上的平移距离。

要将一个点的齐次坐标表示转换为三维坐标表示,可以将其除以 w,即:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lijiamingccc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值