作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试进行一些涉及光线追踪的计算,但有点困惑。假设我有一个 n×n 图像,其中包含 N 个几何基元、l 个光源和 k x k super 采样。在最坏的情况下我会计算多少条射线相交?如果我添加深度为 d 的反射/折射会怎样?
最佳答案
您必须为图像的 n x n 像素中的每一个像素发射 k x k 射线。对于这些射线中的每一条,您都必须进行碰撞测试,这将以一种非常简单和低效的方式转化为 N 次比较(每次比较都取决于图元的复杂性)。现在,如果这些光线中的任何一条射到镜面或半透明表面,您必须拆分光线并递归调用。然而,这次您不进行 super 采样,所以您只在反射/折射方向发出一条光线。对于深度 d,您将发送该数量的额外光线,每次递归调用一个。
因此,总共:k^2 x n^2 x d。
这还没有计算相交计算,它不会添加更多光线,但会增加很多复杂性。
然而,有许多简化。
关于math - 光线追踪计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10617845/
我正在尝试使用 Sfml 编写 2D 游戏。对于那个游戏,我需要一个 Lightengine 和一些代码,这些代码可以为我提供玩家可见的世界区域。由于这两个问题非常吻合(实际上是相同的),我想同时解决
我是一名优秀的程序员,十分优秀!