Today I found that the color dodge algorithm in Photoshop can be simplified:
//let b = base color, c = mix color, then
b + (b * c) / (1 - c) = b / (1 - c);
This clearly tells us how the final color va …
Suppose we have a Line:
P = P1 + tL
and a plane:
N • (P - P2) = 0
We can substitute P into the plane equation:
N • (P1 + tL - P2) = 0
Solve for t:
t = (N • (P2 - P1)) / (N • L)
The point of intersection is:
P = P1 + ((N • (P2 - …
One dimension:
\[
G(x) = \frac{1}{\sqrt{2\pi \sigma^2}} e^{-\frac{x^2}{2\sigma^2}}
\]
Two dimensions:
\[
G(x, y) = \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 + y^2}{2\sigma^2}}
\]
This is because:
\[
I(t) = \int_{-t}^{t} e^{-x^2}dx …
In Clifford algebra all units forms a group, so we can construct a unit dual-quaternion from two quaternions q and t where q is a unit rotation quaternion and t is a pure quaternion representing the translation:
\[
d = (1 + \fra …
2016-07-09
5 comments
We can compute a rotation matrix \( R \in SO(3) \) from an angle \(\theta\) and axis \(l\) (unit vector)
\[
R = e^{\theta C} = I + \sin(\theta)C + (1-\cos \theta)C^2
\]
where \(C\) is the antisymmetric matrix:
\[
C = \begin{bmat …
A Cardinal spline( sometimes called Canonical spline )consists of a sequence of curves. Consider a single Cardinal segment:
\[
F(u) = C_0 + uC_1 + u^2C_2 + u^3C_3
\]
Suppose it starts at \(F(0) = P_i\) and ends at \(F(1)=P_{i+1} …
Sometimes we need only a subset of the vertices in a mesh to be animated without a full skeleton, such as a set of mouth shapes or face vertices for facial animation. A easy way to do this is using Morph Target Animation. In thi …
Compared with the Sobel Operator which use 8 points, the Roberts Operator use only 4 points to compute the gradient magnitude. The first order derivative represents the directional derivative:
\[
G_x =
\begin{bmatrix}
-1 & …
This is an improved Sobel operator mainly used in edge detection. It uses 3×3 convolution matrix to compute the gradient in the x-direction (\(G_x\)) and y-direction (\(G_y\)):
\[
G_x =
\begin{bmatrix}
-1 & 0 & 1\\
…
Voxel Global Illumination
传统游戏中,所有间接光照(某一表面反射出来的光线)是预先计算的,存储于有光照贴图之称的纹理内。
光照贴图让游戏场景能够具备类似全局光照的效果,但是因为它们是预先计算的,所以只在静态物体上有效。
VXGI将一个 …
D3DXQUATERNION * WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *pOut,
CONST D3DXQUATERNION *pQ1,
CONST D3DXQUATERNION *pQ2,
FLOAT t)
{
float s = 1.0f - t;
float dot = D3DXQuaternionDot(pQ1, pQ2);
if (dot < …
We can use it to find an orthonormal basis for Tangent, Bitangent and Normal:
\begin{align}
T &= T-\frac{(T \cdot N)N}{N \cdot N} \\
B &= B-\frac{(B \cdot N)N}{N \cdot N}-\frac{(B \cdot T)T}{T \cdot T}
\end{align}
If the …
☆. Rotation about the x, y, z axis
\begin{align}
R_x(\theta) &=
\begin{bmatrix}
1 & 0 & 0\\
0 & \cos\theta & -\sin\theta\\
0 & \sin\theta & \cos\theta
\end{bmatrix} = exp \left (\theta
\begin{bmatrix …
一: 数学中的n维欧氏空间的切空间定义为:如果k维曲面S在点x0∈S的邻域内能用k个独立参数t1,t2, … , tk给出的光滑映射t→x即(t1,t2,…,tk)→(x1,x2,…,xn)给出,x0=x(0)且矩阵x'(0)的秩为k,那么称在n维欧 氏空间中用矩阵 …