
Stop Using Normal Matrix
For rendering, I used to calculate normal matrix to transform vertex normal from model space to world space or view space. The normal matrix is defined as the inverse transpose of upperleft 3x3 matrix of the model matrix, from this article. Of course matrix inverse is not a cheap operation…

Conversion between View Space Linear and Screen Space Linear
Some background of this problem: when doing screen space reflection, we need to shoot a ray from every pixel to find out reflection color. However we donâ€™t want to march the ray in view space, because for example you have a ray pointing relatively inwards or outwards to the…

Calculate Minimal Bounding Sphere of Frustum
I came across this problem when fixing shadow shimmering in Cascaded Shadow Map, but it could be used in many other cases. To describe what we are going to do more specifically: given a frustum with near plane \(n\), far plane \(f\), and field of view angle \(fov\), we need…