首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
games101专题
GAMES101(5~6节,光栅化)
光栅化Rasterization 透视投影已知field和近平面,如何推导宽度? 根据三角函数:tan field / 2 = (height / 2) / ||n||近平面,从而可以求出高度 因为知道宽高比,所以可以求出宽度,高度 * 宽/高 视口变换 经过MVP变换,顶点位于正则化空间坐标,是一个在 [-1,1] ^3 之间的 x, y, z 坐标构成(标准立方体),我们下一步需要做
阅读更多...
Games101学习 - 线性代数综述
1. 叉积矩阵形式 叉乘矩阵形式通常在物理模拟中有运用,处理四元数旋转也类似这样的形式。 // 定义两个向量 A 和 BFVector A(1.0f, 2.0f, 3.0f);FVector B(4.0f, 5.0f, 6.0f);// 计算叉积FVector CrossProduct = FVector::CrossProduct(A, B);if (GEngine){GEngine
阅读更多...
GAMES101图形学笔记1
一、图形学的应用 1.游戏渲染、光照 2.电影特效 3.面部、动作捕捉,如Avatar(阿凡达)中的面部捕捉 4.设计 建筑设计,汽车设计 5.虚拟现实VR 增强现实AR 6.数码插画 笔刷 PS软件等 7.模拟、仿真 8.GUI 界面设计等 9.字体设计typography 二、为什么学习图形学 1.图形学是一门Awesome的学科,能够创造很多有意思的东西,有意思的图像 2.了解并学习一
阅读更多...
Games101-动画与模拟(求解常微分方程,刚体与流体)
Single Particle Simulation 规定了任何一个物体任何时刻的速度,知道它的初始位置,求它某个时间后的位置? 如果一个物体是匀速直线运动,用初始位置加上速度和时间的乘积即可 如上图,如果想描述一个粒子在一个速度场(理想的情况:只要知道位置,就知道它这个时刻的速度)中如何运动 任何一个粒子在上面的速度场会沿着类似水流的方向往前走 任何一个位置x和任何时间t,都知道有一个速度
阅读更多...
Games101-相机与透镜
成像:光栅化成像(上图)和光线追踪成像(下图) 都是用合成的方法来成像。还可以用捕捉的方法来成像 利用小孔成像原理制作的相机就是针孔相机 如果一个相机没有针孔/透镜,是无法拍照的。 因为任何一个点都有可能收集到来自不同方向上的光。这个点本身作为传感器是不区分来自各个方向上的radiance。则各个方向上能量都被收集到一起,该点收集到的是irradiance,而不是radiance。最终所有东
阅读更多...
Games101 光栅化笔记, 作业二
光栅化笔记 1、屏幕、像素、屏幕空间: (1)屏幕: 1、像素的二维数组 2、分辨率:数组的规模 3、典型的光栅成像设备 (2)像素的抽象理解: 1、内部颜色不会变化的小方块 2、RGB三者的颜色混合 (3)对光栅化的理解:对像素进行着色 (4)屏幕空间(在闫老师课上的规定): 1、屏幕的左下角是原点 2、x和y坐标都取整数,下图中蓝色像素坐标为(2,1) 3、像素的索引范围是(0,0)->
阅读更多...
Games101 作业一 构建模型变换,和透视投影矩阵
知识总结:变换的流程 (1) 模型(Model)变换,pa中模型只绕z轴旋转 (2)视图(View)变换,作用是调整摄像机的位置 (3)投影(Projection)变换,pa中要求是透视投影,透视投影可看成挤压 + 正交变换 (4)视口(Viewport)变换,将投影变换所得的[-1,1]²变换到屏幕空间 代码分析: (1)获得视图变换矩阵(main.cpp) 视图变换的作用是移动摄像机,可看
阅读更多...
17 - Games101 - 笔记 - 材质与外观
**17 **材质与外观 材质与BRDF 自然界中的材质:丝绸、头发、蝴蝶翅膀表面、寿司表面等等 图形学中的材质:同一个模型之所以渲染出不同结果的原因就是因为材质。在图形学中是给不同的物体指定不同的材质,知道它们如何和光线作用后就能正确的渲染。 漫反射 BRDF 漫反射材质:光线打到一个点上后均匀分散到各个不同方向上。 漫反射材质可以定义它在任何一个点上可以有不同的漫反射系数,虽
阅读更多...
14 Games101 - 笔记 - 光线追踪(利用包围盒技术加速光线追踪(KD-Tree and BVH)
14 光线追踪(利用包围盒技术加速光线追踪(KD-Tree and BVH) 在上一节中,我们介绍了whited-style光线追踪的原理,以及实现细节。相比与光栅化中所使用的的Blinn-Phong模型,光线追踪显著了提升了图像质量,但随之而来的问题是渲染速度过慢。因为在判断光线与场景交点的时候,需要去进行所有三角形面与光线的求交,而且这仅仅是对一个像素而言。 那么总体来说光是进行光线与三角形
阅读更多...
Games101-着色(着色频率、图形管线、纹理映射)
着色频率 从边界可以看出三个球,拥有完全相同的几何形状。但是着色之后结果各不相同 着色频率:着色要应用在哪些点上。 第一个球,把着色应用在一个面上。一个平面只做一次shading。 第二个球,每一个平面有4个顶点,每个顶点都算出对应的法线,进行shading。每3个顶点,可以围成一个三角形,三角形内部的颜色通过插值的方法计算 第三个球,着色应用在每一个像素上。求出每一个三角形的法线,将法线进行
阅读更多...
GAMES101 学习4
材质和外观 材质 == BRDF 漫反射 任何方向的光进来都会被均匀的反射到周围各个不同的方向上去 假设能量守恒,那么 Li = Lo,这之后BRDF就 = ,就可以定义一个反照率 (Albeo) - ,在(0 - 1)之间 这样就可以引入不同颜色的BRDF,BRDF = ,BRDF在 (0 ,)之间 Glossy 玻璃 水 反射方向的计算 平行四边形法则:wi
阅读更多...
GAMES101 学习3
Lecture 13 ~ 16 Shadow mapping 一种图像空间算法生成阴影时不需要知道场景中的几何信息会产生走样现象 最重要的思想:如果有的点不在阴影里你又能看到这个点,那么说明摄像机可以看到这个点,光源也可以看到这个点 经典的Shadow mapping 只能处理电光源 步骤: 从光源看像场景,记录看到的任何点的深度Project visible points in ey
阅读更多...
【GAMES101】Lecture05 Rasterizaion 1 (Triangles) 光栅化之三角形
目录 0 引言1 MVP后要做什么呢?1.1 MVP是什么1.2 Canonical Cube to Screen 标准立方体到屏幕1.3 Rasterizing Triangles into Pixels 将三角形光栅化为像素 2 Rasterization:Drawing to Raster Display2.1 Polygon Meshes2.2 Triangle Meshes2.3
阅读更多...
games101图形学学习笔记
1 线性代数基础 1.1 向量 1.1.1 向量的表示 向量表示既有长度又有方向的量。 其中方向由箭头表示,长度就是线段的距离。 向量也可以用两个点相减表示: 长度计算: 单位向量: 1.1.1 向量运算 向量相加 向量的坐标系表示 向量相乘 点乘 1.点乘的定义 2.点乘的属性 交换律、结合律、分配律 3.点乘的坐标系表示 4.点乘的作用 1)计算两个向量的角度(如光
阅读更多...
【GAMES101】Lecture 22 物理模拟与仿真
目录 单粒子模拟 显式欧拉方法 改进 中点法/修正的欧拉方法 自适应步长 隐式欧拉方法 非物理改变位置(Position-Based / Verlet Integration) 刚体模拟 流体模拟 单粒子模拟 先来研究粒子的运动,假设有一个速度矢量场,对于确定的位置和时间可以确定粒子的速度 就会有一个计算粒子随时间的位置的一阶常微分方程Ordinary Diff
阅读更多...
GAMES101-Assignment3
GAMES101-Assignment3 参考文章: 1.《GAMES101》作业框架问题详解 2. Games101:作业3(管线分析、深度插值、libpng warning、双线性插值等) 3.【GAMES101】作业3(提高)与法线贴图原理和渲染管线框架分析 文件清单: CMakeLists.txt(项目配置清单,cmake根据此清单进行系统构建、编译、测试) OBJ_Loader.h(
阅读更多...
【GAMES101】Lecture 20 颜色
目录 光 颜色 加色系统 CIE RGB颜色匹配实验 颜色空间 CIE XYZ颜色空间 HSV颜色空间(Hue-Saturation-Value) CIELAB空间 减色系统:CMYK 光 光是由不同波长的光波组成的,其中可见光的波长范围在400nm到700nm 用谱功率密度(Spectral Power Distribution ),SPD来描述光在不同
阅读更多...
【GAMES101】Lecture 20 光场
目录 光场(Light Field / Lumigraph) 广场照相机 光场(Light Field / Lumigraph) 我们在三维的世界中从一个观测点出发看到这么一幅二维的画面 如果有这么一副画布可以完美的显示出从观察点看到的画面,那用这幅画布去替换周围的世界而使你感觉不到有什么不一样,这就是虚拟现实技术 我们能看到这个世界是因为周围有光线进入我们的视网膜,就
阅读更多...
【GAMES101】Lecture 19 透镜
目录 理想的薄透镜 模糊 利用透镜模型做光线追踪 景深(Depth of Field) 理想的薄透镜 在实际的相机中都是用的一组透镜来作为这个镜头 这个因为真实的棱镜无法将光线真正聚焦到一个点上,它只能聚在一堆上 所以方便研究提出了一种理想化的棱镜,这个棱镜没有厚度,非常薄,它可以成功的将平行光线聚焦到一个点上,并且我们认为这个薄棱镜的焦距可以改变,实际上可以通过现
阅读更多...
【GAMES101】Lecture 19 相机
目录 相机 视场 Field of View (FOV) 曝光(Exposure) 感光度(ISO) 光圈 快门 相机 成像可以通过我们之前学过的光栅化成像和光线追踪成像来渲染合成,也可以用相机拍摄成像 今天就来学习一下相机是如何成像的,就是研究相机的构造结构 成像有这个小孔成像和透镜成像,小孔成像即针孔相机,无法做景深虚化,我们之前的光线追踪用的就是针孔
阅读更多...
【GAMES101】Lecture 18 高级外观建模
外观就是材质,就是BRDF,然后对于不同的模型,这个材质的计算不太一样 目录 非表面模型 参与介质 头发 皮毛-动物毛发 颗粒材质(Granular material) 表面模型 半透明材质(Translucent material) BSSRDF 布料 Detailed material (non-statistical BRDF) 过程中程序生成外观(Procedural
阅读更多...
【GAMES101】Lecture 17 材质
目录 材质 漫反射 镜面反射 折射-Snell’s Law Fresnel Reflection / Term(菲涅耳项) 微表面模型 各向同性与各向异性 BRDF的性质 测量BRDF 材质 渲染方程中的BRDF描述了物体是如何与光线作用的,而物体的材质决定了它看起来是怎么样的,也就是它的材质决定了光线是如何反射的,即BRDF就表示了物体的材质这个属性 漫反射 D
阅读更多...
【GAMES101】Lecture 16 蒙特卡洛积分
为了后面要讲的路径追踪,需要讲一下这个蒙特卡洛积分,同时需要回顾一下高等数学中的微积分和概率论与统计学的知识 目录 微积分 概念论与统计 蒙特卡洛积分 微积分 定积分是微积分中的一种重要概念,用于计算函数在一个区间上的总体积、总面积或总量,对于一个实函数 f(x),定积分可以表示为∫[a, b] f(x) dx,其中 [a, b] 是积分区间,f(x) 是被积函数,dx 表示
阅读更多...
【GAMES101】Lecture 14 15 辐射度量学
目录 辐射度量学 Radiant flux(光通量) intensity(发光强度) irradiance radiance 辐射度量学 主要讲述了物理学中的Basic radiometry (辐射度量学),就是我们在之前的计算光照中没有用具体的物理单位去衡量和描述这个光照,今天就来介绍一些物理单位,老实说,的确很难 Radiant flux(光通量) 光辐射出来的能量,
阅读更多...
【GAMES101】Lecture 13 光线追踪 Whitted-Style
目录 光线追踪 基本的光线追踪算法 Whitted-Style光线追踪 求曲面交点 求三角形交点 Möller Trumbore Algorithm(MT算法) 光线追踪 这里讲一下为什么我们需要光线追踪,主要是因为光栅化没有办法很好的处理全局的光照效果,就像上节课我们说的到软阴影,还有这个毛玻璃一样的反射光,以及这种间接的光照效果,光栅化无法很好处理,虽然光栅化很快,光线
阅读更多...
【GAMES101】Lecture 12 曲面
目录 贝塞尔曲面 曲面细分 Loop细分(Loop Subdivision) Catmull-Clark 细分(Catmull-Clark Subdivision) 曲面简化 贝塞尔曲面 然后前面讲了贝塞尔曲线,这里讲一下这个贝塞尔曲面 那怎么样从贝塞尔曲线到贝塞尔曲面的转换呢,前面我们说到这个逐段的贝塞尔曲线是通过四个控制点来画的,这里贝塞尔曲面是通过16个控制点来画
阅读更多...