Poisson-Disc 算法介绍
1. 红点代表 “活跃” 的样本。在每次迭代中,从该组的所有活跃样本中随机地选择一个样本。接着在样本周围的环形区域内随机产生新的候选样本(如动画中黑圈白底的点),最多产生 k 次。
2. 环带的半径范围为 (r, 2r),其中 r 是任意两个样本之间的最小允许距离。如果产生的新候选样本落在了现有样本半径为 r 的范围内(即动画中的灰色禁区)将被拒绝,与现有的样本相连的黑色线表示新候选点太靠近现有样本点。如果候选样本点满足以上条件并被接受(即和周围的现有样本点距离大于等于 r ),它将被作为新的活跃样本(红色)。
3. 如果第 k 个候选样本点仍然是是不可接受的,那么所选择的“活跃”样本点将被标记为无效(非活性),将不再用于产生候选样本点。非活性的样本点用黑色表示。
当没有样本保持活跃,算法结束。
【尺寸为 的背景网格是用来加速每个候选的距离检查。因为每个小格只能包含至多一个样本,所以只需要检查固定数目的相邻小格即可】