Shader 基础笔记02
笔记该笔记对应入门精要中 4、5、6 章节部分。 坐标空间以及顶点变换的顺序 模型空间(model space), 在 DCC 中建立的坐标 世界空间(world space),将模型的顶点变换到世界空间中这个操作叫做 Model Transform。 观察空间(view space),也被称为摄像机空间(camera space)将顶点从世界空间变换到观察空间的操作叫做 View Transform。 裁剪空间(clip space), 从观察空间转换到裁剪空间的矩阵叫做 clip matrix,也称为 projection matrix(投影矩阵)。完全位于这个空间内部的图元会被保留,位于这个空间之外的图元会被剔除,位于边界的图元会被裁剪。 屏幕空间(screen space), 投影之后,获得一个真正的像素坐标。首先,通过标准齐次除法获得归一化的设备坐标(Normalized Device Coordinates, NDC)。然后,我们可以根据变换后的 x 和 y 坐标来映射输出窗口的对应像素坐标。总结为两个操作(齐次除法,屏幕映射)。 顶点变换的过程 顶点从模型空间 -...
Shader 基础笔记01
Shader 基础笔记该部分笔记对应入门精要中 1、2、3 章内容 Shader 渲染流程在 OpenGl 中,矩阵的变换过程如下。 为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate),它在之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip Coordinate),并最后以屏幕坐标(Screen Coordinate)的形式结束。下面的这张图展示了整个流程以及各个变换过程做了什么: 《Render-Time Rendering,Third Edition》一书中将一个渲染流程分成三个阶段:应用阶段(Application Stage)、几何阶段(Germetry Stage),光栅化阶(Rasterizer Stage)段。 应用阶段 准备场景数据,如摄像机的位置、视锥体、场景中包含了哪些...