Mattina's Blog

Nice to see u :P

尘封已久的博客啊,好久不见。翻看着之前的笔记,仿佛在透过屏幕看曾经的自己。

没再更新笔记的这小一年的时间里,我确实经历了很多事情。我在时而焦虑内耗,又时而干劲满满、热烈快活的日子里摸爬滚打。蓦然回首,确实已经走过了很长的一段路;纵然向前,也发现阶段性的目的地已经发生了变化。

打碎,再重塑,如此循环,似乎是对这大半年抽象却最精准的概括。客观的世界是相同的,不同之处在于每个人看待这个世界的方式。人生似乎就像是在训练一个大模型,每一段人生经历都像在对这个模型做微调训练。而最终模型的推理,就是在认知这个世界。

实话讲,去年的我真的很拧巴,归根到底大概是想不明白自己这么做的目的。贸然前行,却发现心不在此。虽然如此,我却真心地感激着过去这一年的经历。这些的经历塑造了现在的我,而我现在的认知也促使我选择了当下的阶段性目的地。

说回写下这段矫情碎碎念的最初目的——这个博客也许会停更很长一段时间。图形学和TA都很有意思,但也许不是当下的我最想去深入了解的了。我在试图探索一些更交叉杂糅的领域,目标和方向改变没关系,坚定就好。

那么,暂别啦。祝所有人生活愉快。

  • L2 Preview
    • Recap of CG Basics
      • Basic GPU hardware pipeline
      • OpenGL
      • OpenGL Shading Language (GLSL)
      • The Rendering Equation
      • Calculus
Read more »

1.3 纹理

  • 可供着色器读写的,结构化存储形式
    • Image[Height][Width][4],4为RGBA
  • Pros:建模工作量、储存空间、读取速度⬇️
  • Cons:几何细节损失
Read more »

PBR补充笔记

引擎PBR公式基于微表面模型,BRDF:$f_r = f_{spec} + f_{diff}$

  • 其中微表面BRDF高光部分:$f_{spec} = k_s \frac{DFG}{4(\omega_o \cdot n)(\omega_i \cdot n)}$,用于计算specular

    • $k_s$ 镜面反射比例

    • $\omega_o$ 为光线出射方向,即viewDir;$\omega_i$ 为光线入射方向,即lightDir

    • D为法线分布(描述漫反射/镜面反射);$D = \frac{Roughness^2}{\pi (cos^2\theta_h(Roughness^2 -1 )+1)^2}$

    • F为菲涅尔项(描述反射、折射的能量分布);$F = F_0 + (1-F_0)(1-cos\theta _h)^5$,$F_0$根据金属度发生变化

    • G为几何项(描述微表面间的相互遮挡);$G = G_{GGX}(n\cdot l ,k) \cdot G_{GGX}(n\cdot v ,k)$,其中$G_{GGX}(float \quad dot ,float \quad k) = \frac{dot}{dot(1-k)+k}$,而$k = \frac{(Roughness + 1)^2}{8}$

  • 其中微表面BRDF高光部分:$f_{diff} = k_d \frac{Diffuse}{\pi}$

    • $k_d$ 为漫反射比例

    • $Diffusion$ 为纹理颜色

  • 将微表面BRDF带入反射方程:$L_0 = \int_\pi f_r \cdot L_i \cdot (\omega_i \cdot n)d\omega_i$

基于上述公式,可以实现引擎中PBR

截屏2023-07-29 13.41.05

Read more »

  • P21 Preview

    • Keyframe animation
    • Physical animation
    • Kinematics
    • Rigging
  • P22 Preview

    • Single particle simulation

      • Explicit Euler method

      • Instability and improvements

    • Rigid body simulation

    • Fluid simulation

Read more »
0%