![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机图形学笔记
文章平均质量分 96
剑 来!
多目标优化,计算机图形学,游戏开发
展开
-
重要性采样和多重重要性采样在路径追踪中的应用
重要性采样和多重重要性采样在路径追踪中的应用1 蒙特卡洛路径追踪简要回顾1.1 算法主要流程1.2 半球面均匀采样方法2 重要性采样的运用2.1 简单例子与基本概念2.2 路径追踪中的重要性采样2.2.1 Cosine-weighted 半球采样2.2.2 BRDF采样3 多重重要性采样的运用总结:Refernce:在之前的文章中,我们介绍了利用蒙特卡洛路径追踪来解渲染方程得到一个近似解的方法,但使用朴素的均匀采样来求解积分往往会导致比较大的方差和缓慢的收敛速度。因此将积分分为直接光照(对光源的直接采样)原创 2021-03-27 23:01:32 · 2721 阅读 · 2 评论 -
基于物理的渲染:基于图像照明(Image-based Lighting)
基于图像的照明Image-based Lighting在基于物理的渲染方法之中,如果想获得非常好的渲染效果,则需要分析光线的传播方式来进行全局光照的计算,但该方法所需要的计算代价是巨大的,“往往”无法支持实时的需要。相反,如果仅仅考虑光源的直接光照,虽然渲染速度提升,但是渲染质量却不尽如人意,而基于图像照明(IBL)就是这样一种处于两个“极端”之间的方法,把天空盒环境贴图上的颜色信息当做环境光源,通过对反射方程的近似计算,从而生成采样贴图,最终计算光照能量时仅仅需要去对这个贴图进行采样再加以计算即可,相比原创 2020-10-01 20:43:56 · 2881 阅读 · 2 评论 -
计算机图形学补充2:齐次空间裁剪(Homogeneous Space Clipping)
齐次空间裁剪裁剪clipping是什么来个视锥体的图简单裁剪及其缺陷, ->我们想看到的效果(画个草图示意一下)2.齐次空间裁剪2.1 点与面的关系判断三角面与plane的关系— 线与plane的关系----点与plane的关系2.2 线与面的裁剪2.3 凸多边形与面的剪裁来个伪代码解释一下2.4 凸多边形与视锥体的剪裁2.5 转换到齐次空间给出齐次空间下的超平面2.6 三角形组合(triangle assembly)存储顺序是关键, 不然会影响backface cul原创 2020-07-21 15:26:13 · 6171 阅读 · 1 评论 -
基于物理的渲染:微平面理论(Cook-Torrance BRDF推导)
微平面理论与Cook-Torrance BRDF推导1 基础概念1.1 辐射能量与辐射功率1.2 辐照度与辐出度1.3 双向反射分布函数2 微平面理论3 Cook-Torrance BRDF推导3.1 漫反射项推导3.2 镜面反射项推导3.3 菲涅尔方程与几何函数的补充3.3.1 菲涅尔方程3.3.2几何函数4 总结Reference(本篇文章同步发表于知乎专栏:https://zhuanlan.zhihu.com/p/152226698 欢迎三连关注)在前面两篇关于PBR的笔记中,介绍了辐射度量学的一原创 2020-06-30 21:42:56 · 4048 阅读 · 2 评论 -
计算机图形学十六:照相机与透镜
照相机与透镜摘要一 照相机主要部分二 小孔成像与视场(FOV)三 曝光(Exposure)四 景深(Depth of Field)Note:总结Reference(本篇文章同步发表于知乎专栏:https://zhuanlan.zhihu.com/p/147862678 欢迎三连关注)摘要虽说照相机与透镜属于相对独立的话题,但它们的确是计算机图形学当中的一部分知识。在过往的十多篇笔记中,我们学习的都是如何渲染出一张虚拟的图片,因此在本节当中会去介绍照相机与透镜的相关知识,了解现实图像生成的一些内容。一原创 2020-06-12 17:23:19 · 3537 阅读 · 0 评论 -
计算机图形学十五:基于物理的渲染(蒙特卡洛路径追踪)
蒙特卡洛路径追踪摘要1 蒙特卡洛积分(Monte Carlo Integration)2 蒙特卡洛路径追踪(Monte Carlo Path Tracing)Reference(本篇文章同步发表于知乎专栏:https://zhuanlan.zhihu.com/p/146714484 欢迎三连关注)摘要在上一篇文章中,我们通过对辐射度量学当中一系列概念的定义,引入了渲染方程,一个正确的光线传播模型,但并没有去涉及如何解出该渲染方程,或者说如何通过该渲染方程计算出屏幕坐标上每一个坐标的像素值。在本篇文章中原创 2020-06-08 17:22:17 · 5759 阅读 · 5 评论 -
计算机图形学十四:基于物理渲染的基础知识(辐射度量学,BRDF和渲染方程)
基于物理渲染的基础知识摘要1 为什么需要辐射度量学?2 辐射度量学2.1 辐射能量(Radiant energy)和辐射通量(Radiant flux)2.2 辐射强度(Radiant intensity)2.3 irradiance2.4 radiance3 双向反射分布函数(BRDF)4 渲染方程及其物理含义解释总结Reference摘要本篇文章将会从基于物理渲染(PBR)的动机开始讲起,逐步介绍PBR相关的基础知识,如辐射度量学(怎么用物理量精确的描述光线),以及通过辐射度量学从而定义出来的BRD原创 2020-06-02 20:13:35 · 9296 阅读 · 4 评论 -
计算机图形学十三:加速光线追踪(KD-Tree and Bounding Volume Hierarchy)
加速光线追踪摘要1 轴对齐包围盒(Axis-Aligned Bounding Box)2 均匀空间划分Uniform Spatial Partitions (Grids)3 KD-Tree空间划分4 Bounding Volume Hierarchy总结Reference摘要在上一节中,我们介绍了whited-style光线追踪的原理,以及实现细节。相比与光栅化中所使用的的Blinn-Phong模型,光线追踪显著了提升了图像质量,但随之而来的问题是渲染速度过慢。因为在判断光线与场景交点的时候,需要去进行原创 2020-05-28 13:19:46 · 6691 阅读 · 6 评论 -
计算机图形学十二:Whitted-Style光线追踪原理详解及实现细节
Whitted风格光线追踪及其加速方法摘要1 Whitted-Style 光线追踪1.1 原理详解摘要本篇内容主要分为两部分,第一部分介绍最基础的Whitted-style光线追踪的原理,该方法是业界后来许许多多的光线追踪方法变体的基础,相对重要但是并不难理解,第二部分则会具体介绍一些加速光线追踪的方法,因为众所周知,属于全局光照模型的光线追踪获得了相比局部光照Blinn-Phong模型更好的效果,代价自然是速度很慢,难以做到实时(比如说30FPS以上),所以如何加速光线追踪也是重要的研究问题之一。1原创 2020-05-23 15:53:02 · 7492 阅读 · 3 评论 -
计算机图形学十一:几何3—曲面细分(Mesh subdivision)与曲面简化(Mesh Smplication)
曲面细分与曲面简化1 曲面细分(Mesh Subdivision)1.1 Loop细分(Loop Subdivision)1.2 Catmull-Clark细分(Catmull-Clark Subdivision)2 曲面简化(Mesh Smplication)总结Reference曲面细分与曲面简化分别是什么,以及为什么需要这些技术呢?其实这二种技术所做的事情从名字就能看出一二:曲面细分是指将一个模型的面合理的分成更多小的面,从而提升模型精度,提高渲染效果曲面简化是指将一个模型的面合理的合成更少的原创 2020-05-16 11:23:16 · 11569 阅读 · 4 评论 -
计算机图形学十:几何2—贝塞尔曲线(Bézier Curves)与贝塞尔曲面(Bézier Surfaces)
贝塞尔曲线与贝塞尔曲面1 贝塞尔曲线(Bézier Curves)2 贝塞尔曲面(Bézier Surfaces)Reference1 贝塞尔曲线(Bézier Curves)在进入具体原理讲解之前,首先看一下一条实际的贝塞尔曲线长什么样子其中 p0,p1,p2,p3p_0,p_1,p_2,p_3p0,p1,p2,p3为控制点,蓝色所表示曲线正是非常著名的贝塞尔曲线了,可以从图中观察到,曲线会与初始与终止端点相切,并且经过起点p0p_0p0与终点p3p_3p3。那么这样一条曲线究竟是怎么原创 2020-05-14 21:39:35 · 7764 阅读 · 1 评论 -
计算机图形学九:几何1—隐式曲面(代数形式,CSG, 距离函数,分型几何)与显式曲面
隐式曲面与显式曲面1 隐式曲面(Implicit Surface)与显示曲面(Explicit Surface)的特点1.1 隐式曲面的特点1.2 显式曲面的特点2 具体的几种隐式曲面2.1 代数曲面(Algebraic Surfaces)2.2 Constructive Solid Geometry(CSG)2.3 符号距离函数(Signed Distance Function)2.4 水平集(Level Set)2.5 分型几何(Fractals)3 具体的几种显式曲面3.1 点云(Point Clou原创 2020-05-13 21:17:58 · 9883 阅读 · 5 评论 -
计算机图形学八:纹理映射的应用(法线贴图,凹凸贴图与阴影贴图等相关应用的原理详解)
纹理映射的应用1 Normal Maps及切线空间2 Bump Maps3 Displacement Maps4 Environment MapsReference在上一节内容中,我们详细介绍了纹理映射的概念,以及纹理贴图过大过小带来的种种问题与解决方案,但纹理映射的应用远不止单单作为diffuse的反射系数来表现出不同颜色。本文会详细介绍一些主要的纹理映射的应用及其原理,首先从法线映射和切线空间开始说起。1 Normal Maps及切线空间在Blinn-Phong光照模型中,法线向量扮演着重要的一环原创 2020-05-11 16:02:48 · 7058 阅读 · 5 评论 -
计算机图形学七:纹理映射(Texture Mapping)及Mipmap技术
纹理映射和凹凸映射1 纹理映射(Texture Mapping)2 纹理放大率(Texture Magnification)在本篇文章中,我们会具体的讨论如何利用纹理映射让场景拥有丰富的颜色信息,以及纹理贴图精度大小所带来的问题,怎么去解决,最后将会介绍Bump Mapping和Displacement Mapping1 纹理映射(Texture Mapping)首先让我们一起来观察这样一张...原创 2020-05-05 11:27:25 · 10261 阅读 · 13 评论 -
计算机图形学六:正确使用重心坐标插值(透视矫正插值(Perspective-Correct Interpolation))和图形渲染管线总结
透视矫正插值和图形渲染管线总结 1 透视矫正插值(Perspective-Correct Interpolation)正如上一文章中所提到的,我们的重心坐标往往都是在屏幕空间下所得到的,如果直接使用屏幕空间下的重心坐标进行插值会造成一定的误差,与在view space下是不一样的,那么本节内容就会具体介绍如何矫正这种误差,利用屏幕空间下的重心坐标达到正确的插值。在此之后也会对到目前为止的所有内容...原创 2020-05-01 17:03:02 · 69024 阅读 · 20 评论 -
计算机图形学五:局部光照模型(Blinn-Phong 反射模型)与着色方法(Phong Shading)
光照模型1 我们为何能够看到物体?2 泛光模型3 Lambert漫反射模型3 Phong反射模型4 Blinn-Phong反射模型5 Reference到了这一部分,我们就开始进入到着色(shading)的环节了,简单来说shading就是计算出每个采样点的颜色是多少,特别来说,本文所介绍的是从经验总结而来的局部光照模型,并不是真正准确的模型,但是优点是计算快,效果可以接受,至今依然广泛的运用在...原创 2020-04-22 21:41:41 · 13967 阅读 · 5 评论 -
计算机图形学四:抗锯齿SSAA及MSAA算法和遮挡剔除Z-Buffer算法
光栅化21 锯齿 (走样,Aliasing)1.1 超采样反走样(Super Sampling AA)1.2 多采样反走样(Multi-Sampling AA)2 Z-Buffer算法Reference在通过上一节的讲解之后,我们已经能够成功的把带有几何意义的顶点信息从虚拟3维世界之中转换到用像素表示的2维屏幕之中,那这样真的已经足够了吗?本节我们看看还有哪些问题需要进一步解决,即抗锯齿和遮挡关...原创 2020-04-18 18:53:10 · 12409 阅读 · 3 评论 -
计算机图形学三(补充):重心坐标(barycentric coordinates)详解及其作用
重心坐标(Barycentric Coordinates) 1 重心坐标的定义及求解1.1 基础定义1.2 几何面积角度求解本节会分两部分分别介绍重心坐标的定义以及解法和重心坐标在图形学中的运用1 重心坐标的定义及求解1.1 基础定义给定三角形的三点坐标A, B, C,该平面内一点(x,y)可以写成这三点坐标的线性组合形式,即 (x,y)=αA+βB+γC(x,y) = \alpha A...原创 2020-04-11 10:49:37 · 17467 阅读 · 5 评论 -
计算机图形学三:直线光栅化的数值微分算法,中点Brensenham算法和三角形的光栅化
光栅化11 屏幕像素的表示2 直线光栅化算法2.1 DDA数值微分算法2.2 中点Bresenham算法在进入具体的直线光栅化以及三角形光栅化算法之前,我们首先需要知道光栅化是一个什么样的过程。简单来说光栅化的目的就是将想要展现的物体给真正现实到屏幕上的过程,因为我们的物体其实都是一个个顶点数据来表示的,如何表这些蕴含几何信息的数据转化为屏幕上的像素就是光栅化所考虑的东西。比如说一条直线,究竟该...原创 2020-04-10 09:49:46 · 9002 阅读 · 3 评论 -
计算机图形学二:视图变换(坐标系转化,正交投影,透视投影,视口变换)
视图变换(Viewing Transformation)我们可以这样来描述视图变换的任务:将虚拟世界中以(x,y,z)为坐标的物体变换到 以一个个像素位置(x,y) 来表示的屏幕坐标系之中(2维),这确实是一个较为复杂的过程,但是整个过程可以被细分为如下几个步骤:(1) 模型变换(modeling tranformation):这一步的目的是将虚拟世界中或者更具体点,游戏场景中的物体调整至他们...原创 2020-04-04 18:00:38 · 19964 阅读 · 9 评论 -
计算机图形学一:基础变换矩阵总结(缩放,旋转,位移)
变换矩阵总结摘要1 2D线性变换1.1 缩放(scaling)1.2 剪切(shearing)1.3 旋转(rotation)2 3D线性变换2.1 3维缩放(scaling),剪切(shearing),旋转(rotation)2.2 3维绕任意轴旋转3 仿射变换3.1 位移(translation)Reference摘要变换矩阵 (Transformation Marices) 在图形学中的...原创 2020-03-28 12:01:05 · 28701 阅读 · 9 评论 -
计算机图形学一(补充):特征分解和奇异值分解的几何解释
特征分解于奇异值分解的几何解释在计算机图形学一中介绍了一些具体的变换矩阵,如旋转,缩放,位移等等,但这些矩阵都有特定的形式,那么如何去理解一个任意的2维或3维变换矩阵的几何意义呢,在本节中将会利用特征分解和奇异值分解得出一些直观的结论。一 实对称矩阵特征分解特征分解其实就是在本科所学线代中求出一个矩阵的特征值与特征向量,然后利用二者进行一个相似对角化,这一节中考虑较为特殊的实对称矩阵,可以我...原创 2020-04-03 10:39:32 · 6890 阅读 · 4 评论