【游戏不锐评】VA-11 Hall-A Cyberpunk Bartender Action —— 调制饮料,改变人生
【游戏不锐评】VA-11 Hall-A Cyberpunk Bartender Action —— 调制饮料,改变人生10/10 这个游戏唯一的缺点就是太短了。如果可以,我想玩一辈子。 欢迎来到VA-11 HALL-A本作的背景是某个平行世界的207X年。故事发生在罪恶之城Glitch City的贫民窟附近的一家濒临倒闭的酒吧:VA-11...
【GAME101】图形学学习记录——光线追踪
【GAME101】图形学学习记录——光线追踪阴影映射(Shadow...
【GAMES101]图形学学习记录——几何
【GAMES101]图形学学习记录——几何在现实生活中,物体有各种各样的形状,在这一节中,我们将学习如何在图形学中表示这些不同的形状。 隐式和显式几何表示隐式几何表示只包含构成几何形状的点满足的关系,不包含这些点的具体位置,通常为一个函数。例如一个球的隐式表示: x^2+y^2+z^2=1通常用以下方式表示: f(x,y,z)=x^2+y^2+z^2-1=0隐式表示很容易判断一个点在不在几何平面上,但很难找出几何平面上有哪些点。 显式几何表示直接将几何形状上的所有的点都表示出来,或者通过参数映射的方法定义的表面。参数映射的解释如下: 显式表示很容易判断哪些点在平面上,但很难判断一个点在平面上,平面内还是平面外。 不同的隐式表示之前所说函数形式的隐式表示虽然能表示出一个几何图形,但我们很难直观地通过一个复杂的函数知道这个几何图形的形状。以下是一些其他的隐式表示方法。 CSG(Constructive Solid Geometry):通过对基础的几何体做一些简单的布尔运算来表示复杂的几何体。如图所示: Distance...
【GAMES101】图形学学习记录——着色
【GAMES101】图形学学习记录——着色(Shading)简而言之,着色就是为物体附上不同材质的过程。 Blinn-Phong模型Blinn-Phong模型简单地展示了一个着色点在受到光线照射时会表现出什么颜色。 输入:观测方向v,平面法线n,光照方向l,表面参数(颜色,反光度等)。 反射在Blinn-Phong模型中,物体在受到光照后展现出的效果由三个部分组成:漫反射,高光反射,环境光照。 漫反射光线照射在物体表面时向四周反射的现象被称为漫反射。公式如下: L_d=k_d(I/r^2)max(\vec n·\vec l) \\ k_d:漫反射系数(和材质对光线的吸收率有关) \\ I:光源的光照强度 \\ r:光源到着色点的距离 \\镜面反射当我们处于特定的角度观察较为光滑的物体时,会看到物体表面会有明亮的高光,这就是镜面反射产生的效果。 特定的角度为当观察方向(v)和镜面反射的方向(r)足够接近时(范围由材质决定)。 计算v和r的距离较为麻烦,因此我们可以用半程向量(h)和平面法线(n)之间的距离来代替。 半程向量的计算公式以及高光反射的计算公式。 \vec...
【GAMES101】图形学学习记录——光栅化
【GAMES101】图形学学习记录——光栅化我们想要显示的三维模型基本上都是由大量多边形(一般为三角形)组成的,而将这些三角形渲染在屏幕上的过程即为光栅化。 视锥首先,我们要知道我们的屏幕的信息。 fovY:这是一个角度,表示观测点距离平面的竖直范围。 Aspect ratio:宽高比,字面意思,为平面宽和高的比值。 通过下面这张图,我们可以知道以上两个值和之前在投影部分所说物体的t、b、l、r等值的关系,具体如下: tan\frac {fovY}2=\frac t{|n|} aspect=\frac rt屏幕什么是屏幕?在这里,我们将其简单地认为屏幕由一组具有单个颜色的像素排列而成。 光栅化的过程即为决定每一个像素应该显示什么颜色的过程。 视口变换在正交投影时,我们将物体转换到了一个(-1,1)^3的正则立方体中,而在视口变换中,我们要将其显示在我们的屏幕中。 做法为将立方体的XY平面拉伸为屏幕的宽高。 M_{viewport}=\begin{bmatrix} \frac{width}2 & 0 & 0 & \frac{width}2 \\ 0 &...
【GAMES101】图形学学习记录——变换
【GAMES101】图形学学习记录——变换在正式开始学习计算机图形学之前,我们需要了解一些关于线性代数的基础知识。 点和向量的表示我们通常用一个二维列向量来表示一个点的位置或者一个向量,例如: \begin{bmatrix} 1\\ 2\\ \end{bmatrix}矩阵的表示矩阵的表示方式: \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]图形的变换矩阵和向量之间可以进行加减乘除等运算,这里省略。我们知道,一个图形可以用一系列点来表示。如果我们想要对一个图形进行变换操作,我们只需要让这个图形的所有点移动到我们想要的位置即可。我们可以通过对这些点进行运算来实现这个操作。 镜像变换对于这个变换,我们只需要让x或y值变成相反数。 \left[ \begin{matrix} -x \\ y \\ \end{matrix} \right] = \left[ \begin{matrix} -1 & 0\\ 0 & 1 ...