【发布时间】:2020-02-14 09:55:25
【问题描述】:
在我的光线追踪器中,所有表面都以原点为中心并以 Y 轴为中心。 位移、旋转和调整大小是通过对光线应用的变换矩阵获得的。
我最近使用笛卡尔方程在光线追踪中渲染了一个圆环:
(x^2 + y^2 + z^2)^2 - 2 * (r1^2 + r2^2) * (x^2 + y^2 + z^2) + 4 * r1^2 * y^2 + (r1^2 - r2^2)^2
我用射线方程替换了每个点:
例如:X = Ray.ori.x + T * Ray.dir.x;
在方程中替换射线分量后,我得到了四次函数的 5 个系数,可用于通过 4 次多项式求解器算法找到方程根(T 交点)。
我想知道 mobius 条 是否可以以相同的方式呈现。 我的研究并没有带来太多,我发现了一些使用三次方程的光线跟踪代码,但是复制 4 个系数导致我产生了难以理解的形式和伪影。
你能帮我渲染一下吗?也欢迎建议用另一种方法渲染它。
谢谢!
【问题讨论】:
-
我可以建议你先建模一个类似于圆环的扁平环,所以它是一个圆形壁(而不是像行星环那样的圆盘)。假设圆环/环的轴是垂直的,并且表面法线始终指向径向。然后修改它,使表面法线的角度取决于围绕垂直轴的角度,使条带在围绕垂直轴旋转 360° 时发生 180° 扭曲。不确定光线追踪部分,但这可以为您定义表面。
-
通常如果你可以定义一个交集函数,你可以在光线追踪器中使用它。莫比乌斯带在数学上有何特别之处?这就像一个不稳定的圆环。
标签: c raytracing geometry-surface cartesian-coordinates mobius