闫令琪计算机图形学GAMES101的b站课程地址:Lecture 05 Rasterization 1 (Triangles)_哔哩哔哩_bilibili
图片来自于b站课程截图
1 其他
上一节已经学过了如何投影。那么相机的视锥(我的理解:视线范围+一个近平面)如何定义?
首先,给看到的平面定义宽高比,垂直可视角度
有了宽高比(r/t)和可视角度(fovY),结合上个视频提到的侧视图,相机到近平面的距离,--->可以得到近平面的高-->进而得到近平面的宽。这样就知道了近平面的尺寸大小
2 光栅化
把模型转化在屏幕上的过程
屏幕由像素块构成,定义如下:(一个像素在x和y方向都覆盖1的长度,所以中心是+0.5)
我们需要把标准立方体(上节把模型压缩到(-1,1)^3标准的立方体中)映射到屏幕上⬇
怎样做呢???⬇
(1)暂时先不管z
(2)视口变换:把x,y先拉伸到屏幕的宽,高(缩放比例=屏幕宽/原x轴的范围即width/2),拉抻后中心发生了偏移,再将中心移动(原来(模型坐标系)中心在原点位置,现(屏幕)以左下角为原点,因此要移动width/2,heigh/2)得到了二维图片。
怎么把二维图放在像素里在屏幕上显示出来???
。。。。。一部分显示器,光栅化,隔行扫描的介绍,建议看原视频35分
继续⬇
多数图案都可以通过三角形绘制组合形成
(1)三角形是最基础的多边形
(2)任何多边形可拆分成三角形
(3)三角形内部是平面
(4)三角形的内外清晰
(5)定义了三角形顶点属性后,在内部可以做出渐变的效果(三角形属性在内部如何插值)
给一个三角形,如何在像素中显示,三角形不完全覆盖像素时,像素应该怎么赋值???
采样-把函数离散化(看原视频40分左右)
对全屏幕进行采样,判断像素中心点是否在三角形中,(通过叉积即可判断某个点是否在三角形内)
边界的点暂时不做处理。(不处理或规定处理方式)
有必要对屏幕上的所有像素进行采样吗?????没有!!!
取三个点x,y值的最小值和最大值就知道了三角形的大致范围(蓝色的),在此基础上采样提升效率。(还有其他方法)
实际的屏幕是什么样的????(一个像素不一定是简单的一个颜色)⬇
但在本课程中认为像素是内部颜色均匀的块