Z-buffering,中文名又为「深度图」「深度缓冲」,它是通过记录比较每个像素的深度信息来解决层级问题。 Z-buffering 算法理解起来其实是非常直观的,我们这里借用《虎书 4》里的一张插图(可以关注 ️号「卤蛋实验室」后台回复「图形学」领取本书)来讲解一下 Z-buffering 的工作原理。 首先我们假设要在一个8*8的...
Z - Buffer 由于画家算法存在非常明显的弊端,于是“Z-Buffer”随之而生。上文提到,对三角形排序再绘制是不正确的,那我们可以对像素来进行操作。 “Z - Buffer”算法要求我们在绘制场景时保存物体的深度信息,这样在绘制后会生成两个图:一个图(帧缓存)用来保存颜色信息,一个图(深度缓存)用来保存深度信息。这个额外...
Catmull 在其博士学位论文中提出了 Z-buffering 算法,目前已成为使用最广泛的隐藏面消除算法, 其特点:易于通过软件或硬件实现,与图形的绘制流水线结构兼容等。Z-buffering 是帧缓冲器,用来存储图 像空间中每一个可见像素相应的深度或 z 坐标,是一个独立的深度缓冲器。计算准备写入帧缓冲器像素的深 度值即 z 值...
• rasterize_triangle(): 执行三角形栅格化算法 • static bool insideTriangle(): 测试点是否在三角形内。你可以修改此函 数的定义,这意味着,你可以按照自己的方式更新返回类型或函数参数。 因为我们只知道三角形三个顶点处的深度值,所以对于三角形内部的像素, 我们需要用插值的方法得到其深度值。我们已经为你...
上面对每个像素内部做平均计算不太好计算,所以一种改进的算法MSAA诞生了。 MSAA的大致思路是从逻辑上把一个像素点再细分,比如把一个像素点划分成4个child-points (a→b)。 然后通过child-point覆盖的数量来计算对应的颜色(c,d) 但是MSAA一个很明显的缺点就是计算量增加了4倍。。。
Z-buffering 算法理解起来其实是非常直观的,我们这里借用《虎书 4》里的一张插图(可以关注🛰️号「卤蛋实验室」后台回复「图形学」领取本书)来讲解一下 Z-buffering 的工作原理。 day04_Z-buffering 首先我们假设要在一个8*8的屏幕上渲染两个互相遮挡的三角形,我们在正式渲染前先开辟一块儿8*8的二维内存空...
1.画家算法 在正式讲解 Z-buffering 问题之前,我们先来了解一下画家算法[2]。这个算法的思想极其简单,我们可以结合下图简单分析一下: day04_Painter's_algorithm 如果要画一个有山有草有树林的风景画,一个初学者画家可以按以下绘制顺序画画: 首先画最远处的山 ...
Z-buffering 算法理解起来其实是非常直观的,我们这里借用《虎书 4》里的一张插图(可以关注🛰️号「卤蛋实验室」后台回复「图形学」领取本书)来讲解一下 Z-buffering 的工作原理。 首先我们假设要在一个8*8的屏幕上渲染两个互相遮挡的三角形,我们在正式渲染前先开辟一块儿8*8的二维内存空间,这个空间的默认值...
Z-buffering 算法理解起来其实是非常直观的,我们这里借用《虎书 4》里的一张插图(可以关注🛰️号「卤蛋实验室」后台回复「图形学」领取本书)来讲解一下 Z-buffering 的工作原理。 day04_Z-buffering 首先我们假设要在一个8*8的屏幕上渲染两个互相遮挡的三角形,我们在正式渲染前先开辟一块儿8*8的二维内存空...