What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
vfx:houdini:concepts:geo:points_vertex [2020/02/28 12:47] – [Vertex] codingharevfx:houdini:concepts:geo:points_vertex [2022/12/17 15:05] (当前版本) – [Point] codinghare
行 1: 行 1:
 ======Points and Vertices====== ======Points and Vertices======
 Points 与 Vertices 的概念和区别。 Points 与 Vertices 的概念和区别。
-===== =====+----
  
 ====Point==== ====Point====
  
-//Point// 在 //Houdini// 中是由空间中的 ''4'' 个数字定义的,分别是 ''(X,Y,Z,W)''。''X,Y,Z'' 代表了 //Point// 在空间中的坐标,而 ''W'' 则是一个标量,用于坐标的这里应该是四元数,但也用一个标量也可用矩阵实现变换)。因此,//Point// 在该空间中是**不重复**的。+//Point// 在 //Houdini// 中是由空间中的 ''4'' 个数字定义的,分别是 ''(X,Y,Z,W)''。''X,Y,Z'' 代表了 //Point// 在空间中的坐标,而 ''W'' 则是一个标量(应该是 //Homogeneous//)。因此,//Point// 在该空间中是**不重复**的。
 \\ \\
 \\ \\
行 19: 行 19:
 </html> </html>
 ====How to form a primitive==== ====How to form a primitive====
 +在 Houdini 中,一个单独的 Primitive 由以下部分组成:
 +  * 组成 Primitive 的 Vertices
 +  * 在计算 Primitive 中,遍历 Vertices 的顺序
 +通过之前的介绍我们知道,Houdini 中的点(point)信息应该是以 ''1*4'' 的向量存储的:
 +<code>
 +//point number  + coordinate
 +Vertex[@ptnum,x,y,z];
 +</code>
 +
 +因为Vertex 是构成 Primitive 的单位,其自身并没有在**世界坐标系**中的信息 。因此,我们需要引进一个概念,针对世界世界坐标系的绝对坐标值来描述 Primitive 的顶点位置。因此,如果我们打开 Houdini 的 spreed sheet,我们会发现,points 中存储的是 ''[x,y,z]'',而 vertex 中存储的是 ''@ptnum''。那么实际上,Houdini 中的点的信息就是这么存储的:
 +<code>
 +Point[x,y,z];
 +//reference position from point
 +Vertex[@ptnum, ref(Point)]
 +</code>
 +我们可以将 vertex 想象为 point 的 **容器**;换句话说,也就是 vertex 是类, point 是实例。因此,理论上的单个 primitive 是由其对应的 vertex 与 遍历 vertex 的顺序建立的;而 point 提供的额外的坐标数据,确定了该 primitive 在整个世界坐标系中的唯一性。
 +===顺序===
 +Primitive 中遍历 vertex 的顺序非常重要;该顺序直接决定了 Normal 的方向。
 ====Tips==== ====Tips====