高效并行算法在可见性计算与天际线连接中的应用
1. 可见性计算的优化
1.1 任务划分与框架
在可见性计算中,为了提高计算效率,采用了主从架构的并行计算框架。将计算节点划分为一个主节点和多个工作节点。每个主任务包含的三角形数量控制在计算节点 CPU 核心数的 8 到 64 倍之间,这样既能保证计算节点间的计算量分配相对合理,又能避免通信开销过大。
每个次任务是对场景中单个三角形的可见性计算过程,多个次任务组成一个主任务,主任务的划分直接影响次任务。主节点负责分配主任务和退出信号,工作节点负责将接收到的主任务拆分为次任务,并由 CPU 核心执行。工作节点之间没有信息交换。
以下是主节点和工作节点的算法流程:
- 主节点算法 :
1 Parse scene data;
2 MeshID ←0;
3 TriID ←0;
4 IDWorkerNodeNode ←0;
5 NumSecondaryTask ←X;
6 for node=1 to numberOfNodes do
7 if TriID > MeshID.ntris then
8 MeshID++;
9 TriID ←TriID - MeshID.ntris;
10 end
11 Send TriID and MeshID to the IDWorkerNode;
12 TriID+=X;
13 IDWorkerNode++;
14 end
15 while true do
16 if
超级会员免费看
订阅专栏 解锁全文
405

被折叠的 条评论
为什么被折叠?



