TinyRenderer笔记5:阴影和矫正透视变形 - 完结

TinyRenderer笔记5:阴影和矫正透视变形 - 完结

💡 原文中文,约11200字,阅读约需27分钟。
📝

内容提要

阴影映射通过渲染模型的光视角zbuffer来确定光的遮挡部分。结合阴影着色器和Phong着色器计算阴影,以实现更真实的渲染效果。需注意深度冲突问题和重心坐标计算。

🎯

关键要点

  • 阴影映射通过渲染模型的光视角zbuffer来确定光的遮挡部分。

  • 使用阴影着色器和Phong着色器计算阴影以实现更真实的渲染效果。

  • 深度冲突问题可能导致渲染结果出现黑点,需注意解决方法。

  • 使用屏幕空间重心坐标对纹理插值会有问题,需使用裁剪空间重心坐标。

  • 裁剪空间重心坐标的计算涉及透视除法和重心坐标的线性关系。

  • 在计算深度信息和片段着色器插值时,使用裁剪空间重心坐标。

  • 重心坐标和线性代数在渲染过程中起到重要作用。

延伸问答

阴影映射是如何工作的?

阴影映射通过渲染模型的光视角zbuffer来确定光的遮挡部分,未被遮挡的部分则显示为阴影。

如何解决深度冲突问题?

可以通过给深度值加上一个偏移来改善深度冲突问题,但这并不能完全解决,且可能有副作用。

裁剪空间重心坐标的计算方法是什么?

裁剪空间重心坐标的计算涉及将屏幕空间重心坐标除以对应顶点的w分量,并进行归一化处理。

使用屏幕空间重心坐标有什么问题?

使用屏幕空间重心坐标进行纹理插值会出现问题,因为透视除法打破了变换的线性关系。

Phong着色器如何与阴影着色器结合使用?

Phong着色器通过扩展阴影着色器的逻辑,结合shadow buffer来计算阴影,从而实现更真实的渲染效果。

在渲染过程中重心坐标的作用是什么?

重心坐标在渲染过程中用于插值计算,帮助确定每个像素的颜色和深度信息。

➡️

继续阅读