[CG] 消隐算法Z-Buffer深度测试
Z缓冲区算法(Z-Buffer)
将多边形投影到2D平面上时,还需要解决一个问题,就是遮挡问题,也就是消除隐藏面,常用的是Z-Buffer算法。
一个帧缓来村像素的颜色,一个深度缓存来存放每个像素对应物体的深度值。
总的思想是,如果当前操作的像素值的深度值大于深度缓存中对应的深度值(因为往-Z方向看,所以值大的离视点近,也就是在前面),那么帧缓存存入这个颜色值,并把对应的深度缓存也修改成此像素的深度值。
伪代码
Z-Buffer()
{
帧缓存置为背景色;
深度缓存全置为最小Z值;
for(每个多边形)
{
扫描转换该多边形;
for(该多边形覆盖的每个像素(x,y))
{
计算该多边形在该像素的深度值Z(x,y);
if(Z(x,y)>Z buffer在(x,y)的值)//深度测试
{
把Z(x,y)存入Z缓存中(x,y)处;
把多边形在(x,y)处的颜色值存入帧缓存(x,y)处
}
}
}
}
作者:芒果和小猫
出处:https://www.cnblogs.com/WAoyu/p/13160735.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律