请问怎么用mel,让小方块排列到模型上

该主题包含 4 个回复,有 3 个参与人,并且由 NeroBlack 的头像 NeroBlack1 年, 1 月 前 最后一次更新。

正在查看 5 个帖子 - 1 至 5 (共计 5 条)
  • 作者
    帖子
  • #22611
    佐罗的胡子 的头像
    佐罗的胡子
    学员
    注册日期: 2014/07/03
    发帖数: 2
    回帖数: 4

    就是像 像素那样组成模型,用粒子或者py也可以(py不是很熟)。请老师指点下。该怎么做。

    上传附件/图片:
    您必须登陆才能查看附件
    #22620
    佐罗的胡子 的头像
    佐罗的胡子
    学员
    注册日期: 2014/07/03
    发帖数: 2
    回帖数: 4

    怎么判断点是否在模型的面上? closestPointOnSurface?currentPointOnMesh?

    #22622
    佐罗的胡子 的头像
    佐罗的胡子
    学员
    注册日期: 2014/07/03
    发帖数: 2
    回帖数: 4

    问了一上午,总结为 离模型的最近距离是否在合理范围之内,那mel要怎么写?

    #22623
    机器猫 的头像
    机器猫
    教师
    注册日期: 2014/06/20
    发帖数: 1
    回帖数: 15

    非教程内知识问题,纯友情回答:

    最初的问题(小方块排列到模型上)的答案是根据物体的去把物体boundingbox全部成行成列填充起来,填充的时候判断每个填充的点是否位于模型内部,是则保留不是则不填充。判断点是否在封闭物体内的算法是沿点向任意方向发射一根ray,和模型交点数为奇数则内部,偶数则外部。
    这样下来就形成了物体形状的方块阵列。这只是最粗糙的写法,足以应对计算量小的情形。有很多可以优化的地方,而且可以提的是优化和不优化效率有巨大的差别。
    你做的话可以先实现第一步,没问题后再交流如何优化。

    顺便回答下第二个问题,判断点是否在模型上,pymel:

     Code: Python (选择
    1.
    2.
    3.
    4.

    from pymel.core import *
    p = dt.Point([0.0, 0.5, 0.0]) #待判断点
    mesh = selected()[0] #是否位于这个模型上
    print 'on mesh' if (mesh.getClosestPoint(P)-P).length()<1e-3 else 'not on mesh'

    #22628
    NeroBlack 的头像
    NeroBlack
    教师
    注册日期: 2014/06/23
    发帖数: 1
    回帖数: 148

    上面猫大已经解释的很详细了,另外如果用HOUDINI会非常容易实现。

正在查看 5 个帖子 - 1 至 5 (共计 5 条)

抱歉,回复评论必需登录。