随笔分类 - 图形学
摘要:前言 本篇重点如何实现Cellular Noise 定义 Cellular Noise基于Voronoi图生成,其外观就像是一个个紧挨着的细胞,因而得名Cellular Noise。而Voronoi图的定义是由一组连续多边形组成,多边形的形成由其内部的控制点来控制,按照最邻近原则划分平面,即每个多边
阅读全文
摘要:# 前言 本文将对图形学噪声进行介绍,其中重点介绍perlin noise,并讲解如何实现Perlin noise和优化Perlin noise # 噪声 ## 定义 - 噪声是一系列的随机变量,而噪声函数是给定一个输入,输出一个随机变量 - 噪声是将自然现象的变化加入纹理的一个工具,因为在真实世界
阅读全文
摘要:总览 凹凸贴图(Bump Mapping)思想最早是由图形学届大牛中的大牛 Jim Blinn 提出,Normal Mapping,Parallax Mapping,Parallax Occulision Mapping,Relief Mapping 等都是基于凹凸贴图衍生出的 除开displace
阅读全文
摘要:前言 本篇会介绍什么是泛光(bloom)、眩光及形成原因,会介绍基础的实现泛光的流程 镜头眩光 镜头眩光(Lens flare)定义:由于眼睛的晶状体或者相机的透镜直接面对强光所产生的一种现象,由一圈光晕(halo)和纤毛状的光环(ciliary corona)组成 原理:光晕的出现是因为透镜物
阅读全文
摘要:前言 本篇将介绍什么是色调映射,为什么需要色调映射,HDR,HDRI,当前流行的色调映射算法 HDR和色调映射 在谈及色调映射前我们先来看看平时经常听到的HDR和HDRI HDR: High-Dynamic Range(高动态范围)的缩写,可以理解为一个 CG 的概念,常出现在计算机 图形学与电
阅读全文
摘要:颜色空间 在介绍伽马校正前,我们先了解了解必要的知识——颜色空间 颜色空间有几种,分别是sRGB、CIE XYZ等,他们都有颜色匹配函数,但不同颜色空间表示的色域范围不同 CIE XYZ CIE XYZ是人造的颜色空间,他并不是由实验得出的,用XYZ表示颜色,其中Y可以表示亮度 CI
阅读全文
摘要:前言 上一篇介绍了蒙特卡洛路径追踪,并解决它存在的问题,得到的渲染效果很不错,但还未提及基于物理的BRDF,本篇介绍菲涅尔效应、微表面模型、次表面散射,Cook-Torrance BRDF 次表面散射 在真实世界中许多物体都是半透明的,比如皮肤、玉、蜡等。当光进入到透明/半透明材料时,一部分
阅读全文
摘要:前言 上一篇介绍如何表达一个正确的光线传播模型,但没有提及如何解它的值,因此本篇将介绍使用蒙特卡洛路径追踪来解决该问题 什么是蒙特卡洛积分? 原理:对函数值均匀采样求平均并作为积分值的近似。简单来说,就是将下图积分面积分割为多个小长方形,再对这些小长方形的面积求和 定义形式:欲求取[a,b]区间
阅读全文
摘要:前言 在图形学中,BRDF(Bidirectional Reflectance Distribution Function,双向反射分布函数)是真实感图形学中最核心的概念之一,它描述的是物体表面将光能从任何一个入射方向反射到任何一个视点方向的反射特性,即入射光线经过某个表面反射后如何在各个出射方
阅读全文
摘要:前言 本篇将介绍什么是光线追踪,为什么需要光线追踪,实现光线追踪的细节,看完本篇即可跟着教程ray tracing in one weekend用c++实现一个简单的光线追踪器,关于该教程笔者也写了总结rayTracingInOneWeekend - 爱莉希雅 - 博客园 (cnblogs.co
阅读全文
摘要:前言 若您写过光线追踪会发现光线追踪计算时间是非常非常长的,计算次数 = 像素数量 x 三角形面的个数 x 弹射次数,因此本篇将着重介绍如何对光线追踪进行加速、加速方法有哪些 轴对齐包围盒 为什么使用包围盒?在这之前我们遍历场景中所有物体的所有面来判断光线是否和三角形面相交,但仔细思考若光线都没
阅读全文
摘要:什么是曲面细分阶段? 曲面细分(tessellation)阶段是GPU渲染管线中一个可选阶段,在该阶段中又包含三个阶段——外壳着色器(hull shader,HS)阶段、镶嵌器(tessellator)阶段、域着色器(domain shader, GS)阶段.通过使用这三个阶段,我们可以细分几何
阅读全文
摘要:推导 为什么需要透视矫正(Perspective-Correct Interpolation)? 在Phong Shading中,我们提到过通过使用重心插值的方式求三角形内任意一点,但这个重心插值的对象本应是世界空间中的坐标,但大多数计算都是使用透视投影后的二维平面内的数据,而恰恰问题就出在这里。如
阅读全文
摘要:前言 上篇我们谈及phone光照、法线贴图与切线空间,实现了高效的光照效果。本篇我们将基于上篇的效果实现阴影贴图添加硬阴影 原理 阴影贴图的思想是光源看不到而摄像机可以看到的地方,基于此思想我们将阴影贴图的步骤分为三步: 将光源看作一个摄像机进行渲染,将光源空间的深度值写入阴影映射纹理,记为
阅读全文
摘要:前言 https://github.com/ssloy/tinyrenderer/wiki/Lesson-6:-Shaders-for-the-software-renderer本系列基于此教程总结 在上一篇中,我们学会了如何将物体从局部空间变化到世界空间中;如何移动摄像机;如何进行透视投影
阅读全文
摘要:前言 本篇将介绍局部光照模型——每个物体的光照独立于其他物体,即仅考虑光源直接发出的光线,忽略场景中反弹的 为何我们可以看见这个五彩缤纷的世界? 光源是由红蓝绿三色的混合光,而人的视网膜有三种光受体,分别对于红绿蓝三色光敏感,当光线刺激到相应的光受体,基于光线的强度而产生不同程度的刺激,随后
阅读全文
摘要:什么是纹理? wikipedia上做了如下解释"The spatial arrangement of color or intensities in an image.The texture means smoothness, roughness, or bumpiness of the sur
阅读全文
摘要:什么是GPU? "A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of
阅读全文
摘要:总结 动态模糊 动态模糊:在生活中,摄像机快开打开的时间间隔中,摄像机和物体都在移动,拍出来的图像肯定是糊的。大多数特效都可以通过对每个像素进行多重采样实现,动态模糊也属于这个范畴。 方法:我们可以随机的方法在不同时间发射多条射线来模拟快门的打开。也就是说,在快门打开时,随时间变化随机生成光线,并同
阅读全文