基于PSSMLT算法的分布式并行渲染技术
1. 算法基础与任务划分
在图像渲染中,为了满足大步骤突变样本间转移密度均匀的前提,图像平面的每个像素在每个子图像中应接受一次大步骤突变,且大步骤突变需随机访问每个子图像中像素的顺序。具体操作是为子图像中的每个像素分配一个索引,并随机打乱图像像素索引的数组。
1.1 CPU核心任务划分算法
CPU核心的任务划分算法会将打乱的像素索引数组按8 * nc的数量进行相似分割。该算法乍一看与需求驱动算法类似,但存在明显区别:
- 需求驱动算法将图像划分为固定的子区域,直接访问图像像素的位置,并将固定子区域进一步划分为更小的区域。
- 此算法存储打乱的像素索引,随机访问子图像的像素,将整个图像的所有打乱像素索引细分为大小相似的任务(也称为子子图像)。
1.2 工作节点算法
工作节点的算法流程如下:
Algorithm 3: Algorithm on the worker nodes
Parse scene data;
Compute Initial Seed Sample;
sumSplatResults[nPixels] ←0;
Wait for initial assignment msg;
while msg.TAG ̸= EXIT do
Decompose assignment msg into tasks;
Place tasks into a share pool;
Render the tasks in parallel;
Splat current
超级会员免费看
订阅专栏 解锁全文
22

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



