找回密码
 立即注册
查看: 223|回复: 0

计算机图形学-学习笔记(1)

[复制链接]
发表于 2022-5-21 20:45 | 显示全部楼层 |阅读模式
计算机图形学入门从Games101课程开始,记录部分学习内容
1. CG 和 CV

CG(Computer Graphics)计算机图形学,主要包括三维几何、动画模拟与物理仿真,以及渲染三部分。CV(Computer Vision)计算机视觉,更偏向图像处理,图像分割、识别、分类等。
课程中提到通过2D图像逆渲染3D属于CV,这个分类我是比较困惑的,我更偏向于这属于渲染的部分,属于CG。
2. Transform

渲染的目标是将3D模型渲染到2D图像,Transform涉及如何进行不同坐标系空间的转换。
                               模型坐标系 3D->世界坐标系3D->相机坐标系(视口坐标系)3D->图像坐标系2D
这里需要代数的数学基础,一些基本的矢量与矩阵运算,感觉将Y轴设置为 up direction,而不是Z轴,主要还是为了最后对齐到图像坐标系的(xy)。
2.1 模型的坐标系
模型的坐标系:三维模型通过CAD、MAYA、3DMAX等辅助工具设计时创建的,为了模型设计方便,通常会以模型的底面中心或者几何中心为原点,Y轴为up direction, -Z 为front方向进行设计,通常与OpenGL坐标系定义一致。
2.2 世界坐标系
世界坐标系:三维世界空间坐标系,右手系。
2.3 相机坐标系
参数数据类型备注
fovfloat注意这里需要指出 fov 的轴,默认是 vfov, fovY 垂直方向的视场角
AspectRatiofloatAspectRatio = width / height
2.4 图像坐标系
图像坐标系需要注意坐标系的原点,有些会在左下角,有些会在左上角,需要留心。
2.5 NDC
NDC(normalized Device coordinates) 归一化设备空间坐标系,这个坐标系是以相机为原点的[-1, 1]的一个三维空间坐标系,不再区别perspective 和 orthographics 投影,这个坐标系将真实世界near--far的空间压缩的一个相对坐标系,坐标值不具有空间的物理意义了。
3. Rasterization

将连续高频率空间采样为离散的低频图像,由于采样不足会导致锯齿(jaggies,空间域采样不足)、摩尔纹(moire, 欠采样)、车轮效应(时间域采样不足)等 aliasing, 需要对图像进行抗锯齿 AA(Anti-aliasing)。
3.1 AA算法
AA算法算法描述
SSAA(Super Sample Anti-aliasing)基于空域采样,通过单个像素的多次采样平均的方法进行处理,2*2或者 4*4, 耗时且占用内存
MSAA(Multi-Sample Anti-aliasing)基于空域采样,SSAA的改进,单个图元不重复计算,考虑了像素的复用,优化采样点的布局
TAA (Temporal AA)基于时序采样,考虑复用之前时刻像素的采样(渲染会相对容易获取准确的motion vector),需要注意动态目标鬼影的现象
FXAA(Fast Approximate AA)后处理,检测边缘,进行边缘处理,会导致图像模糊
SMAA(Enhanced mophological AA)后处理,FXAA的改进,精确检测距离、局部对比度、几何和对角线
3.1 SR算法, 低分辨率图像 -> 高分辨率图像
根本问题依然是采样不足,DLSS(Deep Learning Super Sampling)
4. Pipeline

注意这里的Pipeline主要是实时渲染的Pipeline。Real-Time Rendering Pipeline 渲染管线:
vertex process -> triangle process -> raterization -> fragment process -> frame buffer operations
4.1 Shader
Shader 将材质属性赋予三维模型, 在Real-Time Rendering中 shader与shadow 是分别计算的,shader仅仅是对obj目标着色,包括自遮挡,不考虑在其他目标上的阴影。
fragment process 需要指定shader的模型。
4.2 Z-Buffer
Z-Buffer记录图像逐像素的最小深度 depth image,在fragment process 步骤中进行可见性检测。
4.3 Texture mapping
texture是三维物体纹理,2D texture 对应Mesh的三维模型,3D texture 对应 Solid 三维模型;纹理的压缩,采样(mipmap)都需要再看看。
4.4 Shadow Mapping
以光的位置作为相机的位置,存储一张Z-Buffer 记录对光源的可见点最近距离,这样能根据这个距离推算出图像像素点对光源的可见性。该方法需要对每个光源都存储一张depth image,应用的场景是对光源的具体位置可知的,对于IBL的光源设置是不方便的。
5. Geometry

几何的描述可以通过显式(triangle meshes, Bezier surfaces, subdivision surfaces, NURBS,
point clouds ...)和隐式()两种方式。
5.1 Polygon Meshes 显式
存储顶点和polygon(一般是三角形或四边形),是最常见的三维几何存储方式。
在文件中记住顶点坐标v(x, y,z)、法向矢量vn(nx, ny, nz)、纹理坐标vt(u, v, (w)),以及顶点之间的连接方式f(v/vt/vn)。
三维几何细分中需要了解贝塞尔曲线,贝塞尔曲面,这些会用在渲染Pipeline中Geometry Process的部分,mesh曲面细分、曲面简化、和规则化。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-27 05:26 , Processed in 0.089235 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表