3d 根据切割角度拆分三维模型
在3D Max Studio中,我回忆起有一个功能(对不起,我记不起该功能的名称)可以将3D模型一分为二。例如,你创建一个球体,然后在中间切割它,留下2个半球。那么,人体呢?想象一个武士在腹部切割一个敌人,现在敌人的模型将变成两个模型:一个是从头部到腹部的上部,另一个是从腹部到脚的下部。此外,为了防止玩家看到切割模型内部,还必须在两个模型中放置一个额外的多边形。(最好是在这个多边形中添加血液纹理,让人觉得这是体内的血液)对不起,如果我的解释不好,你明白我想说什么吗 在3D Max Studio中,我们可以执行上述操作。现在,就3D编程而言,如果我想实现这样的目标,我必须做什么?当然,一种廉价的方法是预先制作切割模型,但这并不现实 我正在寻找一种方法,将一个模型根据切割角度实时切割成两个。这可能吗?这被称为在任何计算机图形文本中剪裁多边形的标准算法。您需要两个角度来表示三维中的“切割角度” 在数学中使用点和法线可能更容易,定义一个将模型一分为二的点 然后可以确定模型的哪些部分位于平面的一侧,哪些部分位于另一侧。只需将每个点插入平面方程即可3d 根据切割角度拆分三维模型,3d,real-time,polygon,mathematical-optimization,math,3d,Real Time,Polygon,Mathematical Optimization,Math,在3D Max Studio中,我回忆起有一个功能(对不起,我记不起该功能的名称)可以将3D模型一分为二。例如,你创建一个球体,然后在中间切割它,留下2个半球。那么,人体呢?想象一个武士在腹部切割一个敌人,现在敌人的模型将变成两个模型:一个是从头部到腹部的上部,另一个是从腹部到脚的下部。此外,为了防止玩家看到切割模型内部,还必须在两个模型中放置一个额外的多边形。(最好是在这个多边形中添加血液纹理,让人觉得这是体内的血液)对不起,如果我的解释不好,你明白我想说什么吗 在3D Max Studio中
ax + by + cz + d
…如果结果大于0,则点位于一侧,如果结果小于0,则点位于另一侧
您可以检测与平面相交的三角形(因为有些顶点在一侧,有些在另一侧),并将它们拆分为多个三角形以保持“切割”笔直,例如:
/\
/ \
--------------- (cut)
/\ /\
/ \ / \
/ \/ \
------------
/\
/ \
---------------(截止)
/\ /\
/ \ / \
/ \/ \
------------
(注意,线下只需要两个三角形-我不是艺术家:)
然后,如果将实体模型一分为二,并且需要在已创建的孔上“补片”,则需要(或)将分割平面上的点连接到该孔。这并不总是容易的,特别是如果多边形不是