1.创建一个圆柱
62:等于边上6条线 每个线上10个点 + 上下面中心的1个点
120:边上的四边形面50个,相当于是100个三角形面。上下面分别有10个三角形面。
实际的点线面:
在3dmax里面不知道怎么显示这个,就是加上可编辑多边形还是显示那种“假”的线框。
2.导出fbx,放入unity,写代码获取点面数据
public class MeshInfo : MonoBehaviour
{
public MeshFilter MeshFilter;
public Mesh mesh;
public int Verts;
public int Polys;
// Start is called before the first frame update
void Start()
{
if (MeshFilter == null)
{
MeshFilter = gameObject.GetComponent<MeshFilter>();
mesh = MeshFilter.mesh;
}
Verts = mesh.vertexCount;
Polys = mesh.triangles.Length/3;
for (int i = 0; i < mesh.vertices.Length; i++)
{
Vector3 v = mesh.vertices[i];
GameObject o=GameObject.CreatePrimitive(PrimitiveType.Sphere);
o.transform.parent = this.transform.transform;
o.transform.localPosition = v;
o.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f);
}
}
}
120:和max里面的三角形面一样。
144:
中间4行 40*2=80
上下面的边 20*3=60
上下面中心点2个
142个,少了两个....
写了个工具显示选中的点的数量,发现上下面的园的边上各有31个点 是10*30+1。
三维里面的三角形构成有共享点、和共享索引(Index),具体现在也忘记了。
--------------------------------------------------------
接下来确认一下max中对圆柱的平滑处理是否会影响导出模型的点面和效果。
前面的是没有Smooth的。
右侧是有smooth的,
90:中间11*4=44,上下面:中间1个,周围22个(9*2+4)。
看起来点的数量减少了,也变得平滑了。
在没有平滑的圆柱的基础上,加个可编辑多边形,使用平滑组中的自动平滑选项,导入unity,效果差不多。
参考原理:3dmax平滑组的使用方法和注意事项
也就是说使用平滑组不会增加点面,目的是为了使造成相邻的面平滑过渡的效果(假象)。
结论:虽然这个平滑组的效果需要光照计算,增加计算量(时间),但总比增加实际点面(空间)影响小吧。
具体的有没有平滑组对性能的影响数值,暂时没能力计算出来。
-----------------------------------------------------------------------------------
同时发现,加不加可编辑多边形,导出时上下面的三角形结构是不同的。
右侧加了可编辑多变形的,点面的数量更少。
分段增多后
在一个教程中看到,不推荐左侧这样的,可能在中间有一点点不好的效果(光照效果吧)。
另外还有个用一条线,增加半径,渲染后加上可编辑多边形变成的圆柱:
把圆柱的分段去掉,比较一下这几个的点面差别
默认圆柱:点46,面40
加可编辑多边形:点42,面36
由线转换来:点40,面36。
如果不考虑其他因素(这种简单结构外观上感觉差不多,其他的话就是作为一个大模型的一部分的可编辑性,还有对uv、贴图的影响),由线转换的是最少点面的。