news 2026/5/1 9:51:30

计算机图形学·24 消隐1 深度缓存-扫描线深度缓存-区间扫描线深度缓存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机图形学·24 消隐1 深度缓存-扫描线深度缓存-区间扫描线深度缓存

本文为记录专业课计算机图形学的部分笔记,参考教材为Angel的第八版交互式计算机图形学——基于WebGL 2.0的自顶向下方法。

1、我们先来考虑基本Z-Buffer算法,基本由来:颜色帧Buffer ,保存各像素颜色值;深度Z-Buffer ,保存各像素处对应物体深度值;深度Z-Buffer中的单元与颜色帧Buffer中的单元一一对应。思路:
①先将Z-Buffer中每个单元的初始值置为-1
规范视见体的最小z值,最大深度值
Z方向(指向纸面外)与视点方向(指向纸面内)相反
②当要改变某个像素的颜色值时,首先检查当前多边形的z值(-深度值)是否大于该像素原来的z值(-深度值) (保存在该像素所对应的z-Buffer的单元中)
如果z值大于,说明当前多边形更靠近观察点,用当前多边形的颜色替换像素原来的颜色;
否则说明在该像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。

优点是简单稳定,利于硬件实现。缺点是需要一个额外的Z-Buffer及其存储空间,在每个多边形占据的每个像素处都要计算深度值(计算量大)。
2、接下来我们考虑扫描线Z-Buffer算法。由来:Z-Buffer算法中所需要的Z-Buffer容量较大,如
何克服这个缺点?可以将整个绘图区域分割成若干个小区域,然后一个区域一个区域地显示,这样Z-Buffer的单元数只要等于一个区域内像素的个数就可以了。如果将小区域取成屏幕上的扫描线,就得到了扫描线Z-Buffer算法。


3、最后我们考虑区间扫描线算法,它主要避免了逐点计算。区间扫描线算法是扫描线Z-Buffer算法的进一步改进,使得在一条扫描线上每个区间只计算一次深度值。如何做到的?把当前扫描线与各多边形在投影平面的投影的交点进行排序后(连贯性),使扫描线分为若干区间。因此,只要在区间上任一点处找出在该处z值最大的一个面,这个区间上的每一个像素就用这个面的颜色来显示。
将区间分为三类:
① 区间为空、无多边形,如下图(a)所示的区间 [0, a1],此时只要按背景属性显示即可;
② 区间中只包含一个区段,即一条交线或交线的一部分,如下图(a)中的区间[a1, a2]和[a3, a4]。此时,按该区段所在多边形的显示属性进行显示;


经过分割之后,再按照A情形处理即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:00:01

基于SSM+JSP的保险业务管理系统的设计与实现

一、前言现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本保险业务管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信…

作者头像 李华
网站建设 2026/5/1 6:00:00

计算机图形学·26 绘制3 光栅化/扫描转换

本文为记录专业课计算机图形学的部分笔记,参考教材为Angel的第八版交互式计算机图形学——基于WebGL 2.0的自顶向下方法。1、本节我们考虑光栅化(Rasterization),这也称为扫描转换,是确定哪些像素在由顶点表示的图元内…

作者头像 李华
网站建设 2026/4/20 17:29:04

【OpenHarmony】匿名共享内存模块详解

匿名共享内存模块详解 🧠 一句话概括:Ashmem(匿名共享内存)就像"进程间的公共黑板",多个进程可以同时读写同一块内存。 📚 目录 什么是匿名共享内存?为什么需要 Ashmem?A…

作者头像 李华
网站建设 2026/5/1 7:05:41

Linux怎么按大小筛选文件?

在Linux运维中,按大小筛选文件是高频操作——清理大日志、查找冗余文件、定位磁盘占用大户都离不开它。那么Linux怎么按大小筛选文件?具体请看下文。用find按大小精确查找文件find是最常用、最灵活的方式,支持按字节、KB、MB、GB 等单位筛选&#xff0c…

作者头像 李华
网站建设 2026/5/1 8:04:13

WTAPI框架个人微信机器人开发

WTAPI框架个人微信机器人开发 在微信深度渗透私域流量与客户服务的背景下,WTAPI框架凭借其“全功能覆盖、安全合规、高效扩展”的技术特性,为开发者提供了覆盖多账号管理、智能交互、社群运营等11大核心场景的个人微信机器人开发能力。以下结合WTAPI技术…

作者头像 李华
网站建设 2026/5/1 8:04:23

基于SpringBoot的校园共享电动车短租平台系统(源码+lw+部署文档+讲解等)

背景及意义基于SpringBoot的校园共享电动车短租平台系统,直击师生“校园出行耗时长、电动车私用资源浪费、短租流程繁琐”与学校“调度难、监管弱”的双重痛点,依托SpringBoot的高可靠性与实时数据处理能力,构建“智能借还精准调度安全管控”…

作者头像 李华