自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Polygonal-Light Shading with LTC

概述如果我们有一个上半球的余弦分布函数(Do)(D_{o})(Do​),并对这个余弦分布函数进行一个矩阵(M)(M)(M)变换,变换为一个新的分布函数(D)(D)(D)。D=MDoD = M D_{o}D=MDo​这就是基本思想:用一个余弦分布函数来拟合出不同的分布函数,并且误差很小。LTC基本定义与性质我们定义DoD_{o}Do​为我们的基函数,也就是我们的原始分布函数。我们在DoD_{o}Do​上采样一个方向向量ωo\omega_{o}ωo​,那么我们对这个方向向量做一个线性变换,也.

2021-12-15 19:32:53 1296

原创 浅谈表面反射——波动光学篇

Radiometric Definitions首先让我们来回忆一下辐射度量学中关于irradiance和radiance的定义:我们在这里定义光源(source)在x-z平面,因此入射光就可以只用θi\theta_{i}θi​来描述。dAs\mathrm{d}A_{s}dAs​是表面积。定义dΦi\mathrm{d}\Phi_{i}dΦi​是入射光在dAs\mathrm{d}A_{s}dAs​上从θi\theta_{i}θi​方向上来的能量。d2Φi\mathrm{d}_{}^{2}\Phi_{i}d

2021-11-13 11:03:06 3462

原创 C++ 模板浅谈

引言与概述C++模板机制允许在定义类,函数,类型别名的时候将类型或值当作参数,这样定义的类和函数在运行时间和空间效率上并不逊色于手工打造的非通用的代码。模板提供的代码是类型安全的。模板是一种编译时期的机制,与手工编写的代码相比,并不会产生任何运行期开销。对模板来说,只有当一个成员函数被使用时才会被生成代码。一个通用的组件应该从一个或多个具体实例泛化而来,而不是简单的从第一原理直接而来。 即我们可以先写一个具体的函数或者类,然后改成泛化类型。模板简介一个简单的模板template <ty

2021-10-22 21:01:30 172

原创 对于C++的思考

前言本文是Bjarne Stroustrup的HOPL4论文 笔记及拓展(目录) 的起始篇。C++的理念C++被设计出来到底是为了回答什么样的问题呢?如何直接操纵硬件?同时支持高效,高级的抽象?C++在1980年代仅仅是一个基于C和Simula语言功能的组合,经过多年的发展,C++与其他编程语言的决定性区别有两方面:语言结构到硬件设备的直接映射零开销抽象关于零开销抽象是这样被描述的:你不用的东西,你就不需要付出代价(也称为“没有分布式脂肪”)你使用的东西,你手动写代码也不会更

2021-10-17 16:39:10 128

原创 SSDO AO 图像空间的动态全局光照

本文仅记述SSDO学习笔记!概述SSDO Screen-space Direction Occlusion 是对AO的扩充,在AO的基础上,假设没有遮蔽的方向有直接入射光,有遮蔽的方向,可能有间接光的反射。SSAO理论分析AO:在计算点的周围进行采样,如果采样点的深度大于采样点所对应的屏幕空间的深度,则认为是没有光照进入,否则我们则认为有间接光照,这样我们就可以对所有采样方向进行积分,计算这一点的光照。让我们来看一下如何进行计算的:一切起源于渲染方程,在渲染方程中我们有三项值得注意,入射光,B

2021-10-17 13:04:34 667

原创 重建世界坐标

1.概论在屏幕空间做一些操作的时候往往需要从屏幕坐标和深度纹理中重建出相应的世界坐标。本文会讨论两种重建世界坐标的方法,并详细讲解第二种方法。使用VP逆矩阵CameraPosInWorld + linearDepth * Direction2.使用VP逆矩阵法我们知道屏幕坐标是通过Object Space下的坐标与MVP矩阵相乘,经历透视除法,再映射到0-1区间下得到相应的屏幕坐标。经历这些操作之后,xy就是相应的屏幕坐标,而z会被用来进行深度测试比较。这里我们省略再拉伸到屏幕像素大小的

2021-10-15 20:51:55 551

原创 C++——lambda表达式

介绍lambda表达式是一种局部类类型,它含有一个构造函数,和一个const成员函数operator()()。lambda表达式除了能做参数外,还能用于初始化一个声明为auto或者std::function<R(LA)>的变量。R是lambda的返回类型,LA是它的类型参数列表。组成部件一个可能为空的捕获列表,指明定义环境中哪些名字能够被用在lambda表达式中,以及这些名字是被拷贝还是引用。捕获列表位于[]中。 补充: 静态变量不能也不需要被捕获。一个可选的参数列表。指明所需要的参

2021-05-17 09:52:59 1477

原创 粗糙表面的微表面模型——Physically Based Material

BSDFBSDF(Bidirectional Sacttering Distribution Function) 描述了光如何在物体表面散射。如果仅仅限制反射或者透射,BSDF经常被称作BRDF或者BTDF,然而BSDF将是BRDF,fs,BTDF,ft项的和。微表面法线分布函数 D(m)给定一个以m为中心的无穷小的立体角d...

2021-05-14 14:49:53 626

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除