前言

上篇介绍了PBR的一些理论基础,本篇基于这些理论,并选择了一个典型的Cook-Torrance BRDF模型,来尝试实现一下精准光源直接光照的计算,其中所引用到的上节的公式先列于此,以便后面引用。

\[ L(p, \vec{v}) = \int_{\vec{l}_i \in \Omega} f(p, \vec{l}_i, \vec{v}) \ast L(p, \vec{l}_i) \ast (\vec{n} \cdot \vec{l}_{i}) \ast d\vec{l}_i \tag{0.19} \]

\[ f_{lambert} (p, \vec{l}, \vec{v}) = k_d \ast \frac {C_{diffuse}} {\pi} \tag{0.22} \]

\[ f_{cook\_torrance}(p, \vec{l}, \vec{v}) = \frac {D(p, \vec{h}) \ast G(p, \vec{l}, \vec{v}) \ast F(p, \vec{l}, \vec{v})} {4 \ast (\vec{n} \cdot \vec{v}) \ast (\vec{n} \cdot \vec{l})} \tag{0.23} \]

阅读全文 »

辐射度量学

辐射度量学是用来研究电磁辐射能量的科学。所以在这里,PBR使用辐射度量学的一些概念作为能量的表述单位,从而使得到的公式在能量方面得到定量的准确度。要想理清PBR的理论,就不得不明白辐射度量学的一些基本概念。

阅读全文 »

前言

本文为使用git+sourcetree进行日常开发版本控制与多人协作的日常工作流程简介。当然在实际工作中多少会与本文所述有所冲突,但大同小异,其基本流程变化不大,希望读者自行掌控细节。

另外,对于美术资源,由于git对加锁没有比较好的支持,更科举的做法是使用perforce(p4v),详见perforce官网下载。但是对于人数不多的小型项目,使用git使可满足绝大多数需求,故本文并没提及p4v,希望有需求的读者可自行研究。

阅读全文 »

架构

UE4 从源代码的组织上来看是由__模块 (Module) __组成的

从功能上讲, UE4 对 编辑器(Editor) 和 游戏性(Runtime) 都提供了支持

对于编辑器来说, UE4 提供了丰富的编辑界面,

角色编辑器 (Persona) 动画编辑器 (AnimationEditor) 特效编辑器 (Cascade和Niagara) 材质编辑器 脚本编辑器 (蓝图) 等等

同时还可以自定义插件, 以及使用开放的蓝图节点工具和UI工具 Slate 来定制自己的编辑器界面

对于游戏性来说, UE4提供了比较完整的游戏性类, 以实现对整个游戏生命周期的控制

这些游戏性类从宏观上看也是遵循 MVC 模式的

阅读全文 »