我正在开发 3ds Max 的插件。在这个插件中,我将几何信息导出到可以由 RenderMan 渲染器渲染的 .rib 文件中。当我将 nubrs 曲线的数据导出到 RiBasis 和 RiCurve 描述的 .rib 文件时。我在 RiBasis 中使用了 RtBsplineBasis,但我得到了错误的结果,即渲染曲线比 3ds Max 渲染器的结果短。然后我重新打印第一个和最后一个控制顶点,曲线足够长,但它的形状有点不同。谁能告诉我我怎么得到错误的结果或者RiBasis是什么意思?如何获得正确的 RiBasis?非常感谢!
问问题
184 次
1 回答
1
RiCurve 绘制三次样条。控制点不是唯一决定曲线的;您还需要基础,它表示为 4x4 矩阵 - 一个矩阵给出 B 样条、Bezier、Catmull-Rom 等所需的系数,当然您也可以自己提供一些矩阵一种不完全符合标准 3 或 4 的混合插值法。基础决定了样条曲线的特性——曲线是保证通过控制点还是仅仅是近似值,连续性程度,“紧张”等。
在“The RenderMan Companion”的一个附录中有一个很好的讨论,包括不同基矩阵如何影响插值的数字示例。
听起来您要求 B 样条基础,它是近似的(不是插值的)并且在一阶和二阶导数中都是连续的。也许这不是你的想法。很难说,因为您没有描述您希望的样条曲线的属性。
顺便说一句,用非有理三次逼近任意 NURBS 曲线并不总是会给你一个精确的匹配。还有一点要记住。
于 2013-03-19T17:22:21.057 回答