三维模型的面计算方式及其研究

请注意,本文编写于 159 天前,最后修改于 159 天前,其中某些信息可能已经过时。

本文为一夜设计原创,转载请注明出处。

最近,在使用MAX工作的时候,我偶然间发现一个不解的问题:新建一个BOX,系统显示面数为12,顶点8个,边为18条。

按照常人的认知,BOX的面数应为6,顶点为8,边为8条,(别问为什么,初中老师就是这么教的!)

那么,这是MAX的统计出BUG了?还是别的什么原因?我进行了一下研究。

先上结果:MAX的统计没有BUG,我们的认知也没错,是因为计算方式不同导致的数据差异。

过程:

我新建一个BOX,长宽高各给50mm,分段都给1,

新建BOX
新建BOX

可以发现,现在的BOX统计面数为12,顶点为8个,边为18条,这通常来说不符合认知。

我将其转换为可编辑多边形,

转换为可编辑多边形后
转换为可编辑多边形后

可以看到,转换后的BOX统计面数为6,顶点为8个,边为12条,这符合我们的认知。

那么,为什么转换为可编辑多边形后会产生这种变化呢?

首先,我们需要明确一个概念:所有三维模型都是由三角面构成的,三角面是三维世界的最小单位。

三角形是最稳定的结构,移动任何一个点都不影响面的平整度,同时它相比四边形少了一个点,对于很久以前的原始计算机,这意味着在世界定位中可以少定位1个坐标,减少数据量。

另外,GPU也是为三角形而优化的,在世界上所有的游戏引擎中,四边面以及五边面等多边面不被支持,游戏用模型都是基于三角面进行拓扑。

四边面仅仅是为了方便编辑和可观察性而存在。

那么到这里,也就能理解为什么BOX在转换前后的统计数据不同了:

  • 在转换为可编辑多边形之前,MAX自动给BOX分配了如何布线使其每个面都是三角面,这是自动的,也是必须的。
  • 在转换为可编辑多边形之后,MAX将布线方式全权交给制作者,所以我们看到点、线、面数与我们的认知是相同的。
  • 在这之后,如果你制作的模型,全部都是三角面,那系统不参与解算,直接计算;反之,如果你制作的模型,全部都是四边面,那系统先要解算生成三角面,再计算。

接下来我尝试是否与判断的结果一样,我全选所有的点,连接所有的点。

系统自动布线
系统自动布线

可以看到,这时BOX的统计面数为12,顶点为8个,边为18条,与前面未转换可编辑多边形时候的统计数据是一样的,只不过系统自动布线的结果很凌乱,不具备可观察性。

研究到此结束。

添加新评论

评论列表