第三课 深度缓冲

Reference

Lesson 3: Hidden faces removal (z buffer) · ssloy/tinyrenderer Wiki (github.com)
深度测试-透明测试 | AncientElement (gitee.io)

深度缓冲

在上一节中我们已经加载了模型,但是可以发现模型的嘴巴和眼睛被模型后面的空腔覆盖了。

在obj文件中实际上已经存在了每个顶点的z值,但是在上一课我们没有去使用,这里我们用到z_buffer算法来记录每个像素的深度值

当有距离更加近的元素时更新z_buffer中对应的像素的深度值,并且更新颜色值

但是这里只有顶点的z值,没有每一个像素的z值,怎么办呢?

Read More

第二课 三角形光栅化和背部剔除

Reference

Lesson 2: Triangle rasterization and back face culling · ssloy/tinyrenderer Wiki — 第 2 课:三角形光栅化和背面剔除 ·ssloy/tinyrenderer 维基 (github.com)
https://www.cnblogs.com/TenosDoIt/p/4024413.html

扫线法绘制面

用扫线法绘制面,就类似于我们画画一样,一条一条线的画,直到将三角形画满

在上一节课中我们已近写了画线的方法了,需要得到两个点,我们从下往上画,每次都得到三角形两个边上的对应顶点。

就像下面的图形一样:

Read More

深度测试-透明测试

Reference

鄙人知识浅薄仅仅是对大佬的文章以自己的理解描述了一下,有些实在自己描述不好就摘抄了
如果实在觉得写的不好,是本人水平有限,还请前往前往原文处观看

图形学|shader|用一篇文章理解半透明渲染、透明度测试和混合、提前深度测试并彻底理清渲染顺序。 - 知乎 (zhihu.com)

深度测试

如果在渲染的时候我们仅仅按照绘制物体的先后顺序来渲染那么会出现以下情况无法绘制:

Read More

为什么TCP是可靠的

Reference

https://zhuanlan.zhihu.com/p/112317245
简单聊聊 TCP 的可靠性 - 知乎 (zhihu.com)

概述

当前我所熟知的TCP可靠主要是根据TCP的丢包重传和有序性。但是,是怎么样的原理实现了丢包重传和有序性呢这个我们慢慢道来。

TCP主要提供了检验和、序列号/确认应答、超时重传、最大消息长度、滑动窗口控制等方法实现了可靠性传输。

Read More