【问题标题】:how to render motion of a 3d rigid object using povray如何使用 povray 渲染 3d 刚性物体的运动
【发布时间】:2012-05-16 17:12:33
【问题描述】:

我运行了几个对象的刚体模拟,我想使​​用 povray 渲染这个模拟。

对象的网格保持不变,所改变的只是每个对象的位置和方向。 在 povray 中迭代生成电影图像的最佳方法是什么? 我可以在每次迭代中编写一个完整的 pov 文件,然后将它们全部发送到 povray,但由于每个网格都非常大,我希望只编写一次。 有可能吗?

如果有更好的方法,请告诉我...

【问题讨论】:

    标签: rendering mesh povray rigid-bodies


    【解决方案1】:

    使用#define 将网格写入inc 文件并为其命名。在您的主 .pov 文件中,您应该能够定义包含旋转和平移的数组或样条线,然后使用时钟变量对其进行索引并渲染动画。

    【讨论】:

    • 谢谢!但是有一个问题:样条线对位置很有用,但是方向呢(在 C++ 代码中,一个 3X3 矩阵),我怎样才能轻松地将其转换为样条线?
    • 您可以将 3x3 矩阵更改为独立的 X、Y 和 Z 旋转角度并对它们进行样条化,或者对矩阵的所有 9 个分量进行样条化。
    • 或者,为每一帧创建一个单独的 .pov 文件并一次渲染一个。
    【解决方案2】:

    这是一种充实 David Buck 建议的方法,使用单个 .pov 文件,呈现为动画。

    #include "transforms.inc"
    #declare myOriginalObj = /* you do the work here, with mesh aligned to "y axis"*/
    #declare newDirection =  /* you do the work here: make new alignment vector,
         as a function of clock  */
    #declare newPosition =   /*you do the work here: create vector for new position,
         as a function of clock  */
    #declare newObj=object{
        myOriginalObj
        Reorient_Trans(y,newDirection)
        translate newPosition
        }
    object{newObj}
    

    进一步阅读: http://povray.tashcorp.net/tutorials/dd_makesnow/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2019-08-30
      相关资源
      最近更新 更多