模糊 高斯模糊 用高斯分布函数作为权重,对邻域像素的颜色做加权平均。离中心越远的像素,对最终结果的影响越小。这个过程是对图像做卷积,即进行低通滤波,实现模糊效果。 优化高斯模糊 高斯核是可以分解的。我们可以将 2D 卷积拆成两次 1D 卷积的乘积,这样每个像素需要进行计算的次数从 N^2 降低为 2

阅读更多 »

传统光照模型 Lambert 模型 规定漫反射光照如何计算。 兰伯特余弦定理:物体表面受光照影响 = 法线与光线夹角的 cos 值 漫反射光计算公式:L_d = K_d × (I/r^2) × max(cos\theta, 0) K_d 是漫反射材质系数,反映物体会反射多少比例的光 I 是光源强度,

阅读更多 »

转换公式 设法线变换矩阵为 \mathbf{N},仿射变换矩阵的线性部分(上左3x3)为 \mathbf{M},它们之间的关系为: \mathbf{N} = (\mathbf{M}^{-1})^{T} = (\mathbf{M}^{T})^{-1} 公式的推导 设平面法线为 \mathbf{n},平

阅读更多 »

正交矩阵定义 一个实矩阵 R \in \mathbb{R}^{n \times n} 是一个正交矩阵,当且仅当满足: R^T R = R R^T = I 而矩阵与其转置互为逆矩阵 ⇒ 行向量和列向量都构成标准正交基。这就是正交矩阵的名字由来。 以 R^TR=I 为例, R = [\vec{r}_1\

阅读更多 »

语法变动 接口现在可以声明静态方法、private 方法。 try with resource 现在括号内可以放外部声明的 Resource。 @Deprecated 注解变动 增加属性:String since。标识被弃用的代码从哪个版本开始弃用。 增加属性:boolean forRemoval。

阅读更多 »

什么是 GC GC(Garbage Collection,垃圾回收)是一种自动内存管理机制,用于自动回收不再使用的内存资源。它不是 Java 独有的机制,C#、Go 等语言的虚拟机也实现了 GC。 GC 为程序带来的好处是:可以避免复杂困难、高风险的手动内存管理,减轻开发者的负担。 GC 也有坏处:

阅读更多 »

Java 7 的 ConcurrentHashMap Java 7 的 ConcurrentHashMap 采用分段锁机制确保多线程安全。 ConcurrentHashMap 的内部类:Segment 用以表示分段,其继承 ReentrantLock以实现高并发下高效的加锁操作,内部的数据结构是哈希

阅读更多 »

接口 Lock ReentrantLock 是接口 Lock (java.util.concurrent.locks) 的一个实现类。Lock 接口定义了以下方法: void lock(); 获取锁。如果锁不可获取,则当前线程可能被调度(被),并在获取锁成功之前处于阻塞状态。 boolean try

阅读更多 »

JWT 的全称是 JSON Web Token。顾名思义,这是一种 使用 JSON 序列化、用于在网络中安全传递信息的开放标准。 JWS 和 JWE JWT 只定义了消息以什么格式传递,以及消息应该被保护,没有定义如何保护这些信息。 JWS(JSON Web Signature):JWT 的仅签名不

阅读更多 »

原文地址:https://gameprogrammingpatterns.com/acknowledgements.html 请有余力的读者前往支持原作者。 我听说只有作家知道需要做些什么才能写出书,但其实还有另一群人知道写书的负担的确切重量 —— 那些“不幸”与作家称为恋人或夫妇的人。我写这本书的

阅读更多 »