Houdini VEX(十二)Intrinsic属性

一、Intrinsic属性和普通属性基本相似,区别在于普通属性存储在几何体上,Intrinsic属性仅在需要的时候计算出来
二、只有prim和detail有intrinsic属性


Houdini VEX(十二)Intrinsic属性_第1张图片

三、solidembed节点:将模型变成四边形网格


Houdini VEX(十二)Intrinsic属性_第2张图片

Houdini VEX(十二)Intrinsic属性_第3张图片

四、读取的方法一:prim函数

  • 代码:
//读取0号输入端的prim序号测量出来的体积
if(prim(0,'intrinsic:measuredvolume',@primnum) > chf('threshold'))//threshold是定义的一个阈值,可用通过调整来控制显示的面
    removeprim(0,@primnum,1);//移除这个面,1代表并删除顶点
/*   
measuredarea 测量出来的面积
measuredperimeter 测量出来的周长
measuredvolume 测量出来的体积
*/

五、读取的方法二:primintrinsic函数(最常用)

  • 代码:
if(primintrinsic(0,'measuredarea',@primnum)>chf('threshold'))
    removeprim(0,@primnum,1);
/*   
measuredarea 测量出来的面积
measuredperimeter 测量出来的周长
measuredvolume 测量出来的体积
*/

六、读取的方法三:在组里写,满足这个组的才会alpha变成0


Houdini VEX(十二)Intrinsic属性_第4张图片
  • ch('threshold')是用esc键下面的波浪线那个按键括起来的

七、写的方法一:setprimintrinsic函数

  • 代码:
matrix3 trans = 4; //意味着{4,0,0, 0,4,0, 0,0,4}
setprimintrinsic(0,'transform',0,trans);//该属性负责旋转和缩放

八、写的方法二:先pack节点打包,然后会多出来一些intrinsic属性,再通过setprimintrinsic函数控制这些intrinsic属性


Houdini VEX(十二)Intrinsic属性_第5张图片
  • 这些intrinsic属性都可以控制:


    Houdini VEX(十二)Intrinsic属性_第6张图片
  • 代码:
setprimintrinsic(0,'viewportlod',0,'box');//pack geo在视口的显示模式
setprimintrinsic(0,'pivot',0, set(0,chf('height'),0) );//轴心点

九、写的方法三:通过isooffset节点先转化成体积,然后通过setprimintrinsic函数控制体积独有的intrinsic属性


Houdini VEX(十二)Intrinsic属性_第7张图片
  • 读写同理,都可以找到这些intrinsic属性
  • 不同种的prim有不同的intrinsic属性
    十、写的方法四:先convertvdb节点转化,再跟上面同理


    Houdini VEX(十二)Intrinsic属性_第8张图片
  • 代码:
setprimintrinsic(0,'vdb_class',0,'sdf volume');//vdb体积类型

十一、还有很多不同的intrinsic属性可以写,需要去探索
十二、Spreadsheet中,灰色的Intrinsic属性是不可更改的

  • 还有 detailintrinsic() 可获取detail层级的intrinsic属性
  • 更多内容请看以下网页
    https://github.com/jtomori/vex_tutorial#intrinsics

你可能感兴趣的:(Houdini VEX(十二)Intrinsic属性)