You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vulkan草叶渲染中顶点排序引发视角相关性能异常问题

草地渲染性能异常问题

我正在渲染一片草地,每片草叶的xz坐标存储在实例化顶点缓冲区中。最初使用Halton序列生成坐标,缓冲区中的位置呈随机分布。之后改用Z曲线分块生成坐标以提升数据局部性,为视锥体剔除做准备。但即便尚未实现视锥体剔除,性能在特定视角下有所提升,相反视角的性能却下降了。

为验证这一现象,我回到使用Halton序列生成点的旧分支并对其进行排序,得到如下结果:

排序方式朝向-x视角朝向x视角朝向-z视角朝向z视角
无排序~25 FPS~25 FPS~25 FPS~25 FPS
a.x < b.x~15 FPS~30 FPS~20 FPS~20 FPS
a.x > b.x~30 FPS~15 FPS~20 FPS~20 FPS
a.z < b.z~20 FPS~20 FPS~15 FPS~30 FPS
a.z > b.z~20 FPS~20 FPS~30 FPS~15 FPS

测试运行在Intel显卡(mesa驱动)上,同时使用Vulkan Memory Allocator。

回到Z曲线实现并添加视锥体剔除(仅将视锥体内的草叶位置写入缓冲区)后,性能无变化。而打乱草叶顺序则“解决”了问题,性能回到稳定但较低的水平。

需要说明的是:除开启视锥体剔除的情况外,我未基于视图矩阵的值进行任何条件操作,仅执行常规的矩阵/向量乘法。

请问造成这一现象的原因可能是什么?


内容的提问来源于stack exchange,提问作者Alex V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:13:12