【微课程】houdini 几何体的层级关系,顶点是什么?边在哪里? _CG猎人
—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
如果有其他软件三维经验的同学应该知道几何体的基本关系是点→线→面→几何体,maya会有vertice顶点。但是对于houdini来说,几何体的构造有点奇怪。主要集中在下面两点:
1vertex顶点和point点的关系和区别是什么?
2edge边这个元素在哪里?
point 点
点是houdini 多边形里面最核心的概念,也是最重要的元素,基本上绝大部分的节点和功能都是对点进行操作的。可以这样说,如果你对点能够有足够的了解和控制力的话,那么对于houdini来说你就掌握了一大半了。
在houdini中,我们经常接触的点有多边形的点,粒子,然后还有packed物体,实例化物体,甚至还有volume等物体,都与点离不开关系。
一个点最基本的属性就是位置P,这个在上一篇属性中讲解过。没有位置属性的点事不存储。但是,点还可以承载任意属性,包括自定义属性。有很多属性在数学上是说不过去的,比如N法线:一个点怎么会有方向呢?还有pscale和scale缩放,点在数学上的定义是没有大小的一个点......但是在houdini中,你都可以根据自己需要进行设置。
那么vertex和primitive为什么没有点重要
因为点事构成物体的最基本的元素,很多人可能认为是vertex构成点,所以vertex才是最基本的元素。实际上这个理解是不正确的。下面讲解vertex,point和primitive的关系
vertex,point and primitive
有很多人说一个点point等于4个vertices,其实这个理解是片面的。
vertices顶点是用来连接point点与primitive几何体的桥梁。如果不存在面,就没有vertex存在的必要
直接通过add节点生成4个点,调整在不同位置。在属性面板中 点层级第一列就是点序号,后面三列就是位置属性的xyz值。
切换到vertex层级没有任何的顶点,切换到面层级也没有任何面的信息。
添加add节点,在polygons中按照点的顺序把模型连接起来成为一个面片,这时候在顶点层级就看到了4个顶点。
验证了上面的结论,vertice是point与primitive的桥梁,没有primitive就不会有vertice,point是可以单独存在的,vertice不可以。
至于为什么会出现一个point等于4个vertex这个错觉呢(刚才一个point只等于1个vertex)。
我们创建一个grid,为了方便观察,把细分降低如下,并且激活point和vertex和primitive的序号
能够查看到
point0 对应的是vertice0:0一个顶点
point1对应的是vertice0:1和1:0两个顶点
point4对应的是vertice0:2 1:3 2:1 3:0四个顶点
相信大家应该看得出原因了,这里还需要注意的是vertice的序号写法,刚好就是相接面序号顺序。
总结,
vertex是point与primitive的桥梁
point可以单独存在,但是vertex不行
只要point不连接成primitive,也就不会有vertex
至于一个point可以有几个vertex,理论上可以从0-∞,就看你个point是多少个面的共用的点了。
边?
我们知道两个点可以连接成一条线/边,三条线(或以上)可以构建一个面.但是在houdini中,edge可以部分当做是primitive。
其实,这一直是houdini的疼痛点。像上面所说的,我们只需要点,顶点和面就可以定义多边形,边其实是个副产品。真相是,如果vertices是二等公民,那么edge就是三等公民了。边一般不会直接被控制,并且你也不能随便把属性存储在边/线上。
但是,为什么我们可以做边缘切割,边分组和其他边缘操作?
是但是你认真研究一下,这些命令反而揭示了这些真相,下面我选择box的一个边并且打组
认真看上面的图片中的pattern,边是不具有自己的id的,相反,它是通过选择定义这条边的点的进行定义的,point2和point6.
在实际应用的时候,不是什么大问题,了解这些足够工作了。但是如果使用VEX语言中编辑边需要一些技巧,因为你需要绕一些弯来实现效果,这些是你需要记得的。
总结
通过边的研究,更加证明了point在houdini中的地位。其实,houdini也会把edge边放入primitive中,这个可以通过鼠标在节点中查看统计就知道。
获得教程的方法:
如果大家对哪些知识点不是特别清楚的可以在文章后面留言,小编会把自己知道的整理成微课程帮大家解答。