可见性剔除:遮挡、视锥与 Portal 的层级设计
可见性剔除遮挡、视锥与 Portal 的层级设计一、看不见的就不该画实时渲染的其一是条铁律是不可见的物体不渲染。一个开放场景里可能有十万物件但玩家同一时刻只能看到其中一小部分。把全部物件都送进管线是带宽与顶点处理的双重浪费。可见性剔除Visibility Culling就是一套把看不见的在最早阶段剔掉的层级体系是大规模场景帧率的基石。剔除不是单一技术而是分层递进先在最粗粒度砍掉整个区域再逐层细化到单个物体。每一层都面向不同规模的浪费组合使用才能把绘制调用压到最低。二、层级剔除的数据流典型的层级剔除从粗到细依次为视锥剔除、遮挡剔除、Portal 剔除。这一过程如同一个漏斗从场景全部物件开始逐级过滤直至提交绘制的可见集。视锥剔除最简单不在相机视野四棱锥内的直接丢弃遮挡剔除更聪明被前景大物体完全挡住的也被丢弃。Portal 剔除面向室内通过门洞Portal判断哪些房间可能可见房间外的直接跳过。三层漏斗逐级收窄可见集。三、生产级剔除查询与可见集构建实现下面是一段 C 示例展示如何用八叉树做视锥剔除并把可见集交给绘制。#includevector#includecmathstructAABB{floatminx,miny,minz,maxx,maxy,maxz;};structFrustumPlanes{floatp[6][4];};// 6 个平面: axbyczd// 球体与平面的有符号距离0 表示在背面staticinlinefloatDistToPlane(constfloatp[4],floatx,floaty,floatz){returnp[0]*xp[1]*yp[2]*zp[3];}// 用包围球做保守剔除球完全在任一平面背面则剔除boolIsVisible(constFrustumPlanesf,floatcx,floatcy,floatcz,floatr){for(inti0;i6;i){if(DistToPlane(f.p[i],cx,cy,cz)-r)returnfalse;// 保守宁可多画不可误剔}returntrue;}classCuller{public:std::vectorintCull(constFrustumPlanesf,conststd::vectorAABBboxes){std::vectorintvis;vis.reserve(boxes.size()/4);for(inti0;i(int)boxes.size();i){autobboxes[i];floatcx(b.minxb.maxx)*0.5f,cy(b.minyb.maxy)*0.5f,cz(b.minzb.maxz)*0.5f;floatrstd::sqrtf((b.maxx-b.minx)*(b.maxx-b.minx)(b.maxy-b.miny)*(b.maxy-b.miny)(b.maxz-b.minz)*(b.maxz-b.minz))*0.5f;if(IsVisible(f,cx,cy,cz,r))vis.push_back(i);}returnvis;// 返回可见索引集交由绘制提交}};这段代码的关键契约剔除必须保守——用包围球做测试宁可多画不可误剔。一旦错误剔除了本应可见的物体玩家会看到物体凭空消失比多画几帧更不可接受。生产环境应在八叉树或 BVH 上做层级剔除先砍整棵子树再细化到叶避免逐个物体裸测包围体更新需在物体移动时及时重算否则剔除会基于过期包围盒失效。在工程落地中遮挡剔除常采用软硬结合的策略。硬件遮挡查询适合GPU密集型场景但对室内复杂结构大多力不从心。此时需要软件遮挡体或预计算遮挡信息来补足。门户剔除则专门针对房间与走廊的连通关系玩家未穿过门就绝不加载门外内容对室内关卡收益极高。近年GPU驱动剔除把可见性判断下沉到绘制命令本身由GPU决定哪些绘制调用真正执行。进一步削减了CPU端的剔除开销与提交负担。四、保守误剔、遮挡精度与 CPU 开销的代价剔除的最大风险是误剔遮挡剔除若用不精确的遮挡体如用粗糙的盒代替真实遮挡物可能把本可见的物体判为被挡。导致穿帮。因此遮挡剔除常需保守的遮挡体或硬件遮挡查询GPU 回读但硬件查询本身有延迟与带宽成本需权衡。Portal 剔除依赖手工放置的门洞对自动化大世界不友好且 Portal 维护是额外美术工作量。CPU 侧剔除本身也有开销每帧遍历场景做可见性测试物件极多时这部分 CPU 时间不可忽略。需借助空间索引八叉树、BVH把复杂度从 O(N) 降到接近 O(log N)。收尾是过度剔除导致远处弹出的问题剔除太激进物件在转入视野瞬间才加载会有明显 pop-in需用淡入或预加载缓冲。所以落地建议剔除必须保守、用空间索引加速、遮挡用保守体或硬件查询Portal 配合手工放置远处用预加载缓冲防 pop-in。五、总结可见性剔除通过视锥、遮挡、Portal 的层级漏斗把不可见物体在最早期剔除是大规模场景帧率的基石。其风险是保守不足导致的误剔穿帮、遮挡精度与硬件查询成本的权衡、以及 CPU 侧测试的复杂度。工程落地须坚持保守剔除宁可多画借助八叉树或 BVH 把测试复杂度降到对数级遮挡剔除用保守遮挡体或硬件查询。并用预加载缓冲抑制远处 pop-in。包围体须在物体移动时及时更新避免基于过期数据失效。

相关新闻

ClipBERT性能优化指南:10个技巧提升视频问答准确率

ClipBERT性能优化指南:10个技巧提升视频问答准确率

ClipBERT性能优化指南:10个技巧提升视频问答准确率 【免费下载链接】ClipBERT [CVPR 2021 Best Student Paper Honorable Mention, Oral] Official PyTorch code for ClipBERT, an efficient framework for end-to-end learning on image-text and video-text tasks…

2026/7/19 17:23:43 阅读更多 →
Devstral-Small-2-24B-Instruct-2512-5bit:苹果MLX平台的终极视觉语言模型指南 [特殊字符]

Devstral-Small-2-24B-Instruct-2512-5bit:苹果MLX平台的终极视觉语言模型指南 [特殊字符]

Devstral-Small-2-24B-Instruct-2512-5bit:苹果MLX平台的终极视觉语言模型指南 🚀 【免费下载链接】Devstral-Small-2-24B-Instruct-2512-5bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Devstral-Small-2-24B-Instruct-2512-5bit …

2026/7/19 17:23:43 阅读更多 →
P1508 Likecloud-吃、吃、吃 【洛谷算法习题】

P1508 Likecloud-吃、吃、吃 【洛谷算法习题】

P1508 Likecloud-吃、吃、吃 网页链接 P1508 Likecloud-吃、吃、吃 题目背景 问世间,青春期为何物? 答曰:“甲亢,甲亢,再甲亢;挨饿,挨饿,再挨饿!” 题目描述 正处…

2026/7/19 17:23:43 阅读更多 →

最新新闻

互联网大厂常见Java面试题及答案汇总(2026持续更新)

互联网大厂常见Java面试题及答案汇总(2026持续更新)

金九银十即将来袭,又是一个跳槽的好季节,准备跳槽的同学都摩拳擦掌准备大面好几场,今天为大家准备了互联网面试必备的 1 到 5 年 Java 面试者都需要掌握的面试题,分别 JVM,并发编程,MySQL,Tomca…

2026/7/20 0:15:40 阅读更多 →
ngx_output_chain_get_buf

ngx_output_chain_get_buf

1 定义 ngx_output_chain_get_buf 函数 定义在 src/core/ngx_output_chain.cstatic ngx_int_t ngx_output_chain_get_buf(ngx_output_chain_ctx_t *ctx, off_t bsize) {size_t size;ngx_buf_t *b, *in;ngx_uint_t recycled;in ctx->in->buf;size ctx->buf…

2026/7/20 0:13:39 阅读更多 →
python数据可视化技巧的100个练习 -- 31. 类别数据的点图

python数据可视化技巧的100个练习 -- 31. 类别数据的点图

重要性★★★☆☆ 难度★★☆☆☆ 你是一家零售公司的数据分析师。你的经理要求你可视化最近产品发布的客户满意度评级分布。评级是分类的,范围从“非常不满意”到“非常满意”。创建一个点图以显示每个评级类别的频率。使用 Python 进行数据处理和可视化。在代码中生成输入…

2026/7/20 0:12:39 阅读更多 →
智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

在2026世界人工智能大会(WAIC 2026)举办期间,千里科技董事长、阶跃星辰董事长印奇作为特邀嘉宾出席大会开幕式并在大会主论坛(上午场)发表主题演讲《当智能体进入物理世界》。在印奇看来,"智能体"…

2026/7/20 0:12:39 阅读更多 →
商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

7月18日,在WAIC 2026商汤科技 “基座大模型架构创新与生态合作论坛”上,商汤科技联合创始人、大装置事业群总裁杨帆发表《智变共生——加速AI基础设施持续升级》主题演讲,系统呈现了商汤大装置国产AI基础设施“技术-生态-商业”闭环布局&…

2026/7/20 0:12:39 阅读更多 →
2026年具身智能领域代表性机器人产品观察:普渡一脑多形底座与实景落地解析

2026年具身智能领域代表性机器人产品观察:普渡一脑多形底座与实景落地解析

前言2026年被行业视为具身智能从"实验室炫技"走向"规模化量产"的关键拐点。据弗若斯特沙利文《全球商用服务机器人市场研究报告》,普渡科技以23%市占率位居全球商用服务机器人第一,业务覆盖85+个国家和地区,累…

2026/7/20 0:11:39 阅读更多 →

日新闻

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

2026/7/20 0:00:34 阅读更多 →
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

2026/7/20 0:00:34 阅读更多 →
C# 将逗号分割的字符串转换为long,并添加到List<long>

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

2026/7/20 0:00:34 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻