图形学-光线追踪(渲染方程与概率论)
Radiance vs Irradiance 辐射/亮度 vs 辐照度
Irradiance 辐照度: 单位面积上接收到的辐射功率
Radiance 辐射/亮度: 在dωd\omegadω立体角方向上,单位面积上接收到的辐射功率
沿着某个方向ω\omegaω入射到点ppp上的辐射亮度为Li(p,ω)L_i(p, \omega)Li(p,ω),则该点在该方向ω\omegaω上单位面积上接收到的辐照度为dE(p)d E(p)dE(p)。
dE(p,ω)=Li(p,ω)⋅cosθ⋅dωd E(p, \omega) = L_i(p, \omega) \cdot \cos \theta \cdot d\omega \\
dE(p,ω)=Li(p,ω)⋅cosθ⋅dω
则在所有方向上入射到点ppp上的辐照度为:
E(p)=∫H2Li(p,ω)⋅cosθ⋅dωE(p) = \int_{H^2} L_i(p, \omega) \cdot \cos \theta \cdot d\omega
E(p)=∫H2Li(p,ω)⋅cosθ⋅dω
BRDF 双向反射分布函数(Bidirect ...
图形学-Animation动画2
单质点模拟
首先,提出先聚焦于单个粒子的运动,之后再将研究推广到大量粒子的情况。
为开展研究,假设粒子的运动由速度矢量场决定。该速度矢量场是位置xxx和时间ttt的函数,记为v(x,t)v(x,t)v(x,t)。
右侧的图示直观呈现了速度矢量场(由箭头表示)以及粒子在该速度场中运动的轨迹。
常微分方程 Ordinary Differential Equation (ODE)
计算速度场内粒子的位置需要计算一阶常微分方程
dxdt=x˙=v(x,t)\frac{dx}{dt} = \dot{x} = v(x, t)
dtdx=x˙=v(x,t)
欧拉方法 Euler’s Method
欧拉方法,又称为前向欧拉,显式欧拉,是数值积分中最简单的方法之一。
使用很简单的迭代的方式
很常见
很不准
结果通常不稳定
始终使用前一段的量估计下一帧的量。
xt+Δt=xt+Δt⋅x˙tx˙t+Δt=x˙t+Δt⋅x¨tx^{t+\Delta t} = x^t + \Delta t \cdot \dot{x}^t \\
\dot{x}^{t+\Delta t} = \dot{x}^t + ...
图形学-Animation动画
动画是一种信息传递的工具
美学经常比技术重要
是模型的延伸 → 连续性
将场景模型表示为时间的函数
输出一系列图像,当顺序查看时提供运动的感觉
帧率
电影:24FPS
视频:30FPS、29.994FPS
VR:90FPS (不晕的基础要求)
关键帧动画
动画师创建关键帧
助手(人工或程序)创建中间帧
其中的关键技术即为插值技术
线性插值: 通常可能不太满足动画需求
样条插值: 更平滑的插值方式
Catmull-Rom 样条
B 样条
Bezier 曲线
物理仿真动画
模拟、仿真:推导、实现公式,模拟出物体应该怎么变化
例子:布料模拟、流体模拟
质点弹簧系统 Mass-Spring System
一个弹簧左右连接两个质点,位置是a,b\mathbf a, \mathbf ba,b,弹簧劲度系数为kSk_SkS。
当弹簧拉伸时候,弹簧会对两个质点施加一个拉力:
质点a\mathbf aa受到的往b\mathbf bb方向的拉力为:
fa→b=kS(b−a)\mathbf f_{a \rightarrow b} = k_S ( \mathbf ...
图形学-光线追踪(辐射度量学)
背景
Radiometry(辐射度量学)是研究光的物理量的学科,主要关注光的能量和强度等方面。它与光线追踪密切相关,因为光线追踪需要模拟光的传播和交互。
它定义了光在空间中的各种物理量,根据这些物理量用正确的物理方式来计算光照。
Radiant energy 辐射能
Radiant energy 是电磁辐射的能力,单位是焦耳(J)。通常使用符号 $ Q [J = Joule]$ 来表示。
Radiant flux/power 辐射通量
Radiant flux 是单位时间内能量发射,反射,传播,接收的能量量。单位是瓦特(W)。通常使用符号 $ \Phi = \frac{dQ}{dt}[W = Watt = J/s]$ 来表示。对于光而言,通常使用 lumen(流明)来表示。
Angle & Solid Angles 角与立体角
Angle 角
角度:弧长和半径的比值。
θ=lr\theta = \frac{l}{r}θ=rl
整个圆的角度是2π2\pi2π。
Solid Angle 立体角
立体角:是角度在三维空间中的推广。它是一个球面上某个区域的面积与球半 ...
图形学-Geometry几何
表达几何的方式有很多种,基本可以分为两大类:
隐式表示
Algebraic Surface 代数曲面
Level Set 水平集
Distance Function 距离函数
Signed Distance Function(SDF): 有符号距离函数
Unsigned Distance Function(UDF): 无符号距离函数
…
显式表示
Point Cloud 点云
Polygon Mesh 多边形网格
subdivision, NURBS
…
几何的表示方式
几何的隐式表示
隐式不会告诉具体的点在哪,只描述点满足什么约束关系,如对于一个球的隐式表示如下:
x2+y2+z2=r2x^2 + y^2 + z^2 = r^2
x2+y2+z2=r2
更通用的表述方式为满足f(x,y,z)=0f(x, y, z) = 0f(x,y,z)=0的点集,就可以描述一个隐式的几何表示。
隐式表示的缺点是不直观并不知道有哪些点,优点是很轻易可以判断一个点是否在几何上,几何内还是几何外。
基于代数方法的隐式表示
使用代数方程来描述几何体
CSG(Const ...
图形学-Sharding着色
图形学中 Sharding 的概念值对一个物体应用不同的材质的过程。
光照 Lighting
Blinn-Phong 反射模型(BPR)
Blinn-Phong 反射模型是对光线与物体表面交互的一个经验模型。
它将光线与物体表面的交互分为三个部分:
环境光:物体表面在没有直接光照的情况下的颜色
漫反射:物体表面在直接光照下的颜色,取决于光源的颜色和物体表面的颜色
高光反射:物体表面在直接光照下的高光部分,取决于光源的颜色、物体表面的颜色和观察者的视角
计算光线从一个着色点反射到相机中中的颜色:
输入变量定义如下:
vvv: 观察者的视角的单位向量
lll: 表示光源的方向的单位向量
nnn: 物体表面着色点的单位法向量
表面材质(颜色,反光程度,…)
漫反射
一根光线从光源发出,照射到着色点后,会沿四周反射,即为漫反射。
Lambert’s Cosine Law 描述了漫反射的强度与光线入射角的关系。
当光线垂直入射时,物体表面几乎可以接收到全部的光线能量。
当光线倾斜入射时,物体表面接收到的光线能量会减少。
当光线平行于物体表面时,物体表面几乎无法接收到光线能 ...
图形学光栅化
光栅化是把标准化立方体渲染到屏幕上的过程
屏幕的定义:
一段像素数组
像素的数组长度就是分辨率的尺寸
屏幕是一个典型的光栅成像设备
像素的定义:
Pixel 是 Picture Element 的缩写
一个简单的假设是每个像素认为是一个拥有单一颜色的小正方形(当然还有更复杂的假设放在后面讨论)
每个像素的颜色可以用 RGB 三个分量来表示
屏幕空间的定义(这里和虎书中的定义有所差别):
屏幕空间是一个二维坐标系,原点在左下角,x 轴向右,y 轴向上
每个像素的索引由(x, y)唯一表示,x, y 均为整数
像素索引的范围是 [0,width−1]×[0,height−1][0, width-1] \times [0, height-1][0,width−1]×[0,height−1]
像素的中心点坐标为 (x+0.5,y+0.5)(x + 0.5, y + 0.5)(x+0.5,y+0.5)
屏幕空间的坐标范围是 [0,width]×[0,height][0, width] \times [0, height][0,width]×[0,height]
Viewport ...
椭圆周长公式推导
参考资料
本文是针对视频
https://www.bilibili.com/video/BV1ZF411f7Xv
整理的笔记
推导
椭圆的参数方程:
{x=acosθy=bsinθ\begin{cases}
x = a \cos \theta \\
y = b \sin \theta
\end{cases}
{x=acosθy=bsinθ
对参数方程求微分:
{dx=−asinθdθdy=bcosθdθ\begin{cases}
dx = -a \sin \theta d\theta \\
dy = b \cos \theta d\theta
\end{cases}
{dx=−asinθdθdy=bcosθdθ
则周长可以表示为:
C=∫02πdx2+dy2=∫02π(−asinθ)2+(bcosθ)2dθ=∫02πa2(1−cos2θ)+b2cos2θdθ=∫02πa2−(a2−b2)cos2θdθ=a∫02π1−a2−b2a2cos2θdθ=4a∫0π21−a2−b2a2cos2θdθ\begin{aligned}
C &= \int_0^{2\pi} ...
Hyper-V嵌套虚拟化运行PVE折腾
参考资料
微软官方文档说明的已经很详细了,包括其中网络部分的设置
https://learn.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/enable-nested-virtualization#networking-options
环境准备
先在Windows可选功能中将Hyper-V管理平台勾选上,重启电脑后确保可以正常使用Hyper-V创建虚拟机。
创建一个Hyper-V虚拟机,准备安装PVE,我这里虚拟机起名为pve
开启嵌套虚拟化
以管理员身份开启一个PowerShell
12345678910111213# 获取当前所有虚拟机Get-VM# 查看虚拟机处理器相关信息Get-VMProcessor -VMName pve | fl# 可以看到 ExposeVirtualizationExtensions: False# 开启嵌套虚拟化Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName pve# 确认是否成功开启Ge ...
《数学女孩2-费马大定理》阅读笔记 (下)
第 8 章 无穷递降法
8.1 费马大定理
当$n\ge 3 $时,以下方程式不存在自然数解:
xn+yn=znx^n + y^n = z^n
xn+yn=zn
费马大定理证明时间表:
年份
FLT(n)
证明人
1640
FLT(4)
由费马证明
1753
FLT(3)/FLT(6)
由欧拉证明
1825
FLT(5)
由狄利克雷和勒让德证明
1832
FLT(14)
由狄利克雷证明
1839
FLT(7)
由拉梅证明
其中欧拉证明了 FLT(3)其实也相当于把 FLT(6)也证明出来了。
在已经证明出来了 FLT(3)的前提下,证明 FLT(6),使用反证法:
假设方程x6+y6=z6x^6 + y^6 = z^6x6+y6=z6存在自然数解(x,y,z)=(a,b,c)(x,y,z)=(a,b,c)(x,y,z)=(a,b,c)
则a6+b6=c6a^6 + b^6 = c^6a6+b6=c6,即(a2)3+(b2)3=(c2)3(a^2)^3 + (b^2)^3 = (c^2)^3(a2)3+(b2)3=(c2)3
定义(A,B,C)= ...