python for houdini——python在houdini中的基础应用01
程序员文章站
2024-03-26 08:53:17
...
学了一个星期的python,终于可以在houdini中实操了,但是还是有点懵,对于python的语法还不大熟悉,所以还是得多练多做笔记,看了网上几位大佬的博客,个人觉得入门学习还是挺不错的python in houdini的基础教程奈何图片太不清楚,所以自己总结一下
一、houdini中用python的地方主要在
1.写节点上( file/new operator type:有个python形式的)2.python shell(应该是个python编译器),3.python source editor,写hou.session模块的地方。2和3的命令都在windows这一栏里。4.工具栏,右击工具栏建立的工具中可以写python代码。
二、python获取物体并设置属性
1、首先创建一个方块s
2、在python shell 中写代码:
>>> mybox = hou.node("/obj/box_object1/box1")#创建box
>>> print mybox
box1
>>> mybox_tx = mybox.parm('tx')#获取box x轴的位置属性
>>> print mybox_tx
<hou.Parm tx in /obj/box_object1/box1>
>>> mybox_tx.set(10)#box 位置x变为10
三、python连接节点
>>> obj = hou.node("obj")
>>> print obj
obj
>>> mygeo = obj.createNode('geo')
>>> mygeo = obj.createNode('geo',run_init_scripts=False)
>>> mybox = mygeo.createNode('box')
>>> mysur = mygeo.createNode('subdivide')
>>> mysur.setFirstInput(mybox)#连接节点
>>> mygeo.layoutChildren()#位置排列,相当按下L
>>> mysur.setDisplayFlag(True)#设置显示属性
>>> mysur.setRenderFlag(True)
三、在展架中使用
在工具栏创建一个自定义工具
输入代码
from math import sin,cos
geoNet = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
spiral = geoNet.pwd().createNode("curve")
coordsParm = spiral.parm("coords")
input = hou.ui.readMultiInput(message = "Enter parms:",input_labels = ["height","lRadius","uRadius","frequency"],initial_contents = ["20","10","0","3"])
height = float(input[1][0])
lRadius = float(input[1][1])
uRadius = float(input[1][2])
frequency = float(input[1][3])
coordsStr = ""
radius = lRadius
step = (lRadius - uRadius) / (height * frequency)
for i in range(int(height*frequency)):
px = str(radius*sin(i))
py = str(i/frequency)
pz = str(radius*cos(i))
coordsStr += px+","+py+","+pz+" "
radius -= step
coordsParm.set(coordsStr)
之后只要创建一个geometry节点就可以工具使用这个创建螺旋线
四、创建自定义节点
import hou
import random
# This code is called when instances of this SOP cook.
node = hou.pwd()
geo = node.geometry()
# Add code to modify the contents of geo.
random.seed(123)
colorAttrib = geo.addAttrib(hou.attribType.Point,"Cd",(1.0,1.0,1.0))
color = hou.Color()
numPoints = len(geo.points())
for point in geo.points():
pos = point.position()
px=pos[0]
py=pos[1]+random.random()*random.choice([-1,1])
pz=pos[2]
point.setPosition((px,py,pz))
value = float(point.number())/numPoints
color.setHSV((value*255,1.0,1.0,))
point.setAttribValue(colorAttrib,color.rgb())
保存后在即可以通过该节点改变场景中物体颜色和形状属性详细操作可以看翔艺Maya Houdini Python开发实战-基础篇挺不错的一个教程,嫌太长的话也有文字版翔艺Maya Houdini Python开发实战-基础篇-文字版
之后再推荐两篇不错的入门文章
Houdini With Python学习记(CHAO)录(XI)01
Houdini With Python学习记(CHAO)录(XI)02
上一篇: Colmap中重三角化方法总结
推荐阅读
-
python for houdini——python在houdini中的基础应用02
-
python for houdini——python在houdini中的基础应用01
-
python基础教程:决策树剪枝算法的python实现方法详解本文实例讲述了决策树剪枝算法的python实现方法。分享给大家供大家参考,具体如下: 决策树是一种依托决策而建立起来的一种树。在机器学习中
-
Python怎么在web应用中添加本地的图片资源?_html/css_WEB-ITnose
-
基础的十进制按位运算总结与在Python中的计算示例
-
基础的十进制按位运算总结与在Python中的计算示例
-
深入了解Python在HDA中的应用
-
Python中SOAP项目的介绍及其在web开发中的应用
-
第一个在Python 环境中开发的Spark应用示例
-
Python在Office 365 开发中的应用