图形学
文章平均质量分 94
项目配置、渲染、物理动画等内容
owlmo
图形学,虚拟现实
展开
-
FSR超分笔记
超分辨率是通过硬件或软件方法提高原有图像分辨率的方法,通过一幅或者多幅低分辨率的图像来得到一幅高分辨率的图像。FSR是AMD提出的一种超分辨率方法,这种方法不借助深度学习,采用数学推导的方式实现,目前已经更新到3.0版本,本篇博客记录FSR1.0的学习记录。FSR分为两个阶段,第一阶段为EASU上采样,第二阶段为RCAS锐化。ω\omegaω我们为像素T定义Feature的计算公式,只计算像素点T上下左右方向的像素点,该Feature可以与变量ω\omegaω一一对应。原创 2024-08-19 22:32:43 · 1068 阅读 · 0 评论 -
从零开始的OpenGL光栅化渲染器构建6-PBR光照模型
PBR,或者基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。正因为基于物理的渲染目的便是为了使用一种更符合物理学规律的方式来模拟光线,因此这种渲染方式与我们原来的Phong或者Blinn-Phong光照算法相比总体上看起来要更真实一些。原创 2024-01-31 17:04:50 · 1274 阅读 · 0 评论 -
肌肉骨骼模拟
对于角色动画,目前的技术主要包括这两种方式:基于运动学模拟的动画,和基于动力学模拟、即基于物理模拟的动画。第一种方式的应用相当广泛,我们接触的游戏大部分都采用了基于运动学的方式去实现动画,这种方式性能优秀,便于实现,然而却缺少了许多真实性。基于物理模拟的方式来实现动画,对性能的要求比较高,且实现起来比较复杂,优点是交互效果更真实。对人体的肌肉骨骼进行模拟,属于物理模拟的动画实现。肌肉的模拟较为复杂,涉及到生物力学这门交叉学科的内容。目前较为通用的肌肉模拟的模型是希尔模型(Hill model)。原创 2024-01-29 21:08:21 · 1960 阅读 · 0 评论 -
从零开始的OpenGL光栅化渲染器构建5-阴影
阴影是光线被阻挡的结果;当一个光源的光线由于其他物体的阻挡不能够达到一个物体的表面的时候,那么这个物体就在阴影中了。阴影能够使场景看起来真实得多,并且可以让观察者获得物体之间的空间位置关系。原创 2024-01-21 18:22:26 · 1354 阅读 · 0 评论 -
从零开始的OpenGL光栅化渲染器构建4-延迟渲染及其类似应用
首先介绍一下什么是延迟渲染。延迟渲染是一种先计算场景中的顶点、颜色、法线等信息,将其存入缓冲,再进行光照计算的渲染技术,与直接渲染是相对的概念。为了详细介绍延迟渲染,我们首先需要了解帧缓冲,以及帧缓冲的应用,之后介绍基于帧缓冲技术的延迟渲染。原创 2024-01-21 17:25:30 · 1374 阅读 · 0 评论 -
从零开始的OpenGL光栅化渲染器构建3-法线贴图和视差贴图
我们可以用一张纹理贴图来表现物体表面的基础反射颜色,也可以用一张镜面反射贴图,来指派表面是否产生高光。除此之外,我们可以用贴图来存储表面的法线信息,以及高度信息,从而让渲染效果更加精细。原创 2024-01-21 16:07:21 · 1164 阅读 · 0 评论 -
从零开始的OpenGL光栅化渲染器构建2-冯式光照
因此,如果我们打算把法向量乘以一个模型矩阵,我们就要从矩阵中移除位移部分,只选用模型矩阵左上角3×3的矩阵(注意,我们也可以把法向量的w分量设置为0,再乘以4×4矩阵;平行光只需要一个方向来表示光的位置属性,即该光源发射出的所有光线都是在一个方向上的,光线在任何位置强度都不衰减。生活中的一个例子是灯泡。我们用光的颜色乘以一个很小的常量环境因子,再乘以物体的颜色,然后将最终结果作为片段的颜色。镜面反射同理,我们可以采用一张镜面光贴图,根据片段不同的位置,设置镜面放射的反射度,控制物体表面的反射程度。原创 2024-01-14 20:26:07 · 1504 阅读 · 0 评论 -
法线变换矩阵的推导
首先,法向量只是一个方向向量,不能表达空间中的特定位置。因此,如果我们打算把法向量乘以一个模型矩阵,我们就要从矩阵中移除位移部分,只选用模型矩阵左上角3×3的矩阵(注意,我们也可以把法向量的w分量设置为0,再乘以4×4矩阵;当我们应用一个不等比缩放时(注意:等比缩放不会破坏法线,因为法线的方向没被改变,仅仅改变了法线的长度,而这很容易通过标准化来修复),法向量就不会再垂直于对应的表面了,这样光照就会被破坏。这是因为旋转矩阵和等比缩放矩阵都是正交矩阵,正交矩阵有一个属性:矩阵的转置等于矩阵的逆。原创 2024-01-07 16:01:12 · 1357 阅读 · 0 评论 -
从零开始的OpenGL光栅化渲染器构建1
参照,我开始回顾OpenGL中的内容,最终目标是构建一个玩具级的光栅化渲染器,最好还能和之前做的光线追踪渲染器相结合,希望能够有所收获吧~原创 2024-01-06 17:45:17 · 1342 阅读 · 0 评论 -
正交投影矩阵与透视投影矩阵的推导
中,可以先把远平面压缩,把视锥体压缩成一个长方体,然后再通过正交投影矩阵就可以变换到正方体中,如图。坐标应该与近平面上对应的点相同,如下图所示,根据三角形的相似关系,我们可以得到。这时,我们知晓了矩阵中12个位置数的值,此时的矩阵如下,还剩。为了便于后续的计算,压缩后的坐标为。透视投影矩阵的视锥体是一个四棱锥的一部分,其中近平面为。,在把视锥体压缩成长方体的过程中,我们规定三个原则。四个参数定义的,我们尝试用这四个参数来表示上式中的。,然后将中心点移动到原点,矩阵为。最终,我们得到的透视投影矩阵为。原创 2024-01-06 16:06:36 · 1623 阅读 · 1 评论 -
[Ray Tracing: The Rest of Your Life] 笔记
前言开年第一篇博客~ 整理了三四个小时才整理完orz。这一部分是光线追踪三部曲的最后一部,主要介绍了蒙特卡洛积分、重要性采样等内容。场景上没有什么大的改变,基本上就是在Cornell Box中渲染的,本篇主要在加速收敛,提升渲染效率上下功夫。参考链接:https://raytracing.github.io/books/RayTracingTheRestOfYourLife.html什么是蒙特卡洛积分蒙特卡洛方法是一类通过随机采样来求解问题的算法的统称,要求解的问题是某随机事件的概率或某随机变量的原创 2024-01-01 00:43:44 · 1239 阅读 · 0 评论 -
[Ray Tracing: The Next Week] 笔记
本篇博客参照自《Ray Tracing: The Next Week》教程,地址为:https://raytracing.github.io/books/RayTracingTheNextWeek.html该教程在ray tracing in one weekend的基础上,增加了运动模糊、BVH树、Texture映射、柏林噪声、光照、体积渲染等内容。原创 2023-12-25 11:26:01 · 814 阅读 · 0 评论 -
[Ray Tracing in One Weekend] 笔记
本文参照自raytracing in one weekend教程,地址为:https://raytracing.github.io/books/RayTracingInOneWeekend.html什么是光线追踪?光线追踪模拟现实中的成像原理,通过模拟一条条直线在场景内反射折射,最终获知物体表面的颜色。现实世界中,光线最终射向相机,获得成像,光线追踪则是从相机出发,向场景中反向发射光线,从而推出相机“底片”中每个像素的颜色。现实中的相机很发杂,包括多组透镜,在成像时不是光线直接射入相机,需要经过多次折射。原创 2023-12-17 22:54:32 · 473 阅读 · 0 评论 -
Visual Studio 2022配置OpenGL CMake项目
在Visual Studio 2022中配置OpenGL,使用CMake工程的形式。原创 2022-07-07 23:40:07 · 4217 阅读 · 2 评论