本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
Points 与 Vertices 的概念和区别。
Point 在 Houdini 中是由空间中的 4
个数字定义的,分别是 (X,Y,Z,W)
。X,Y,Z
代表了 Point 在空间中的坐标,而 W
则是一个标量(应该是 Homogeneous)。因此,Point 在该空间中是不重复的。
绝大部分情况下在 Houdini 中都是对 Point 的操作。
与 Point 不同的是,Vertex 是以 Primitive (面)为单位的。一个 Primitive 是由 Vertex 和 Edges 组成的。因此,对于有多个 Primitive 的复杂几何体,很可能会出现多个 Vertex 共享 一个 Point 的现象。而从几何上来说,Vertex 才是构成几何体的单位,Point 则只是为了操作方便而设计的一个概念。
<html>
<img src=“/_media/vfx/houdini/concepts/geo/p_and_v.svg” width=“750”/>
</html>
在 Houdini 中,一个单独的 Primitive 由以下部分组成:
通过之前的介绍我们知道,Houdini 中的点(point)信息应该是以 1*4
的向量存储的:
//point number + coordinate
Vertex[@ptnum,x,y,z];
因为Vertex 是构成 Primitive 的单位,其自身并没有在世界坐标系中的信息 。因此,我们需要引进一个概念,针对世界世界坐标系的绝对坐标值来描述 Primitive 的顶点位置。因此,如果我们打开 Houdini 的 spreed sheet,我们会发现,points 中存储的是 [x,y,z]
,而 vertex 中存储的是 @ptnum
。那么实际上,Houdini 中的点的信息就是这么存储的:
Point[x,y,z];
//reference position from point
Vertex[@ptnum, ref(Point)]
我们可以将 vertex 想象为 point 的 容器;换句话说,也就是 vertex 是类, point 是实例。因此,理论上的单个 primitive 是由其对应的 vertex 与 遍历 vertex 的顺序建立的;而 point 提供的额外的坐标数据,确定了该 primitive 在整个世界坐标系中的唯一性。
Primitive 中遍历 vertex 的顺序非常重要;该顺序直接决定了 Normal 的方向。
facet
。facet
节点可以通过将 Point 分离出来达到上述效果,也可以使用 cusp polygons
在不分离 Point 的前提下达到上述效果。