前面渲染模型时候,没有考虑每个点的z坐标,这种方式叫做正交投影,模型看起来偏胖,因为我们平时在3d世界看到的物体都是近大远小的。透视投影就是用近大远小的方式投影。
TinyRenderer笔记2:透视投影
Nostr账号Nip05验证方法
水群学习法
TinyRenderer笔记1:Z-buffer和纹理插值
上一篇结尾渲染出了光照下的模型:
但是这个模型看起来有些奇怪,尤其是嘴巴的部分。因为渲染时候仅仅是按照从模型中读取的顶点信息,将三角形一个个的画了出来,但是并没有考虑三角形的遮挡关系。如果我们先画出了面部的三角形,然后又画了脑后勺的三角形,那最终展示出来的图形就会像上面一样很奇怪,原因是我们没有处理深度信息。
TinyRenderer笔记0:画线和三角以及面剔除
这篇是自己学习tinyrenderer的笔记,不务正业系列。
tinyrenderer教程地址:https://github.com/ssloy/tinyrenderer/wiki
作者教程是用cpp实现的,我用rust来学,列一下用到的库: