8.8k words 8 mins.

# Advanced Topics in Rendering(渲染中的高级主题) # Advanced Light Transport 在高级的光线传播里,我们会说到无偏的和有偏的光线传播方法。无偏光线传播里的代表有双向路径追踪(BDPT)以及 Metropolis 光线传播(MLT)。有偏光线传播会提到光子映射(Photon mapping)以及...
48k words 44 mins.

# Chapter 6 Type and Member Basics # The Different Kinds of Type Members A type can define zero or more of the following kinds of members: Constants A constant is a symbol that identifies a never-changing data value. These symbols are typically used to make code more readable and maintainable....
25k words 23 mins.

# Ray Tracing(光线追踪) 在开始讲光线追踪之前,我们先来讲讲之前遗漏的一个话题,就是在光栅化里面是如何生成阴影的。 我们之前提到着色的时候,知道了着色是一种局部的现象,我们只需要考虑着色点自己、光源以及摄像机,要想算出它的着色,完全不用考虑其它的物体,甚至不考虑这个物体的其它部分对这个着色点的影响。但是事实上这样做是不对的,如果有物体挡在 Shading point 和光源之间,那么光线就到达不了 Shading...
13k words 12 mins.

# Shading(着色) 当我们把所有的三角形都画在了屏幕上之后,都变成了不同的像素之后,这些像素的颜色都应该是什么呢?这便是着色的内容。 # Shading:Definition(着色的定义) # A Simple Shading Model (Blinn-Phong Reflectance...
27k words 25 mins.

# Chapter 4 Type Fundamentals # 4.1 All Types Are Derived from System.Object The runtime requires every type to ultimately be derived from the System.Object type. This means that the following two type definitions are identical. // Implicitly derived from Objectclass Employee {...
3.2k words 3 mins.

# Rasterization(光栅化) # Triangles - Fundamental Shape Primitives 三角形是最最基础的多边形,任何其他的多边形都可以拆成三角形。三角形还有一些独特的性质。例如,三角形永远都在一个平面内;三角形的内外定义的很清楚,可以用向量的叉积来判断一个点是不是在三角形内;根据重心坐标我们很容易进行插值。 接下来我们要做的就是判断一个像素和三角形之间的位置关系。 # A Simple Approach:...
11k words 10 mins.

# 渲染流水线 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果。 # 综述 实际上,Shader 仅仅是渲染流水线中的一个环节,想要让我们的 Shader 发挥出它的作用,我们就需要知道它在渲染流水线中扮演了怎样的角色。 渲染流水线的工作任务在于由一个三维场景出发、生成(或者说渲染)一张二维图像。换句话说,计算机需要从一系列的顶点数据、纹理等信息出发,把这些信息最终转换成一张人眼可以看到的图像。而这个工作通常是由 CPU 和 GPU 共同完成的。 《Real-Time Rendering,Third Edition》一书中将一个渲染流程分成 3...