python houdini_python for houdini——python在houdini中的基础应用01
学了一个星期的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
>>> 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())
python houdini_python for houdini——python在houdini中的基础应用01相关推荐
- Houdini python批量导入abc
Houdini python批量导入abc 在项目中经常与遇到有大量的abc文件需要导入的问题,这个时候就需要批量导入abc来完成后面的工作 第一次写小工具,离高手还很远,继续学习中 直接上代码 去博 ...
- python houdini_【微笔记】houdini使用python创建城市教程笔记I
原标题:[微笔记]houdini使用python创建城市教程笔记I 昨天小编分享了houdini使用python制作城市的教程,讲解得非常不错,不过个人建议大家至少有一些python基础和houdin ...
- 使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones)
使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones) 1. 效果图 2. 原理 3. 源码 参考 这篇博客将介绍如何只使用基本的图 ...
- Python培训分享:Python新版本中的6个新特性
Python在几年做了一个全面的升级,此次Python升级中有6个新特性,本期小编为大家介绍的Python培训教程就是关于介绍Python新版本中的6个新特性的,来看看下面的详细介绍. Python培 ...
- Python培训常识:Python面试中常被问到的几种设计模式要知道
学习Python技术大家都是为了日后能够找到适合自己的工作岗位,那么除了要学习好Python技术外,对于面试环节的问题也要有所了解,本期小编为大家介绍的Python培训教程就算关于Python面试中常 ...
- arcgis里python窗口运行,在 Python 窗口中执行工具
当第一次打开 Python 窗口时,它会显示类似这样的界面: 左侧区域为 Python 的主提示窗口,在这里执行 Python 命令.右侧区域为帮助和语法窗口,工具运行时,在这里显示执行消息:输入代码 ...
- python使用matplotlib可视化、查看matplotlib中常用的线条形式(line style)和数据点标记形状(marker)
python使用matplotlib可视化.查看matplotlib中常用的线条形式(line style)和数据点标记形状(marker) 目录
- Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation)
Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation) 目录 Python可视化(matplotlib)在图形中添加文本和标记(Text and A ...
- python根据二叉树的前序遍历和中序遍结果历重建二叉树
python根据二叉树的前序遍历和中序遍结果历重建二叉树 前序遍历 对于当前节点,先输出该节点,然后输出他的左孩子,最后输出他的右孩子.以上图为例,递归的过程如下: (1):输出 1,接着左孩子: ( ...
最新文章
- Redis 越来越慢?常见延迟问题定位与分析
- java 弱引用 集合_java 弱引用集合类WeakHashMap
- C++ Vector 使用总结
- 政策表达式截取json_json格式数据如何提取指定中文字符串。
- Dijkstra Algorithm (迪杰斯特拉算法)
- Spring学习笔记:配置单数据源
- Springboot2.x 集成 jedis和spring-boot-starter-data-redis的性能测试比较(Jedis完胜:附带源码)
- 《Java 开发从入门到精通》—— 2.4 Java的运行机制
- 总结 部署 Kubernetes+Heapster+InfluxDB+Grafana 详解
- TensorFlow Probability概率编程-时序模型
- Jetbrains IDE 各种 plugins 插件下载
- 计算机网络共享服务器,办公室如何搭建共享服务器或文件共享服务器
- activiti6.0(二)节点处理人
- 万物互联,该怎么联?
- linux ldap客户端工具,openldap(3)linux客户端 启用ldap、sssd 认证
- Scratch滚动的天空(2)
- c语言输出十六进制数乱码,输出乱码
- 火绒安全软件v5.0.44,比较好的安全防护软件
- 程序在Nginx/k8s下如何获取客户端真实IP,带工具类
- Node js 集群(cluster)