我需要澄清一下为我的宠物光线追踪器生成随机值的算法。
我从一点发射光线。我对这些光线的分布有疑问:我需要分布均匀,但不是......
我现在面临的问题是,在我扭曲了结果空间之后,最初均匀的分布并不均匀。
例如,如果是极坐标系,我会生成 r 和 t 角。分布不均匀,也不可能是均匀的:靠近每个极点的空间比靠近赤道的空间具有更多的结果密度。原因很清楚:我将均匀分布的点从圆柱形空间转换为球形。我扭曲了结果。同样的问题是,如果我对多维数据集中随机生成的点进行归一化。
我现在的想法是:我想创建一个四面体,标准化它的顶点,用中间的点分割每个面(三角形),标准化它并递归重复,直到我有足够的点。然后我稍微“扭曲”这些观点。然后我再次标准化它们。而已。
我知道这种方法本身并不是纯数学的蒙特卡罗方法,因为除了最后一步之外,我在任何步骤中都没有使用随机分布。而且我不喜欢这种复杂性的解决方案。
任何人都可以提出更简单的建议吗
- 随机的
- 制服
- 快速地
- 简单的
谢谢!
编辑:
我需要一种快速的方法,而不仅仅是正确的方法。这就是我问蒙特卡洛的原因。提供的答案是正确的,但不是很快。四面体的方法很快,但不是很“随机”=>不正确。
我真的需要更合适的东西。