概述Bundle是一个包含context文件和程序包仓库的目录。
context中的所有包都在存储库中,这使得bundle是可移动和独立的。通过命令创建一个bundle:
12345]$ rez-env foo -o foo.rxt]$ rez-bundle foo.rxt ./mybundle# example of running a command from the bundled context]$ rez-env -i ./mybundle/context.rxt -- foo-tool
通过API创建bundle:
12345from rez.bundle_context import bundle_contextfrom rez.resolved_context import ResolvedContextc = ResolvedContext(["python-3+", "foo-1.2+<2"])bundle_context(c, "./mybundle")
结构一个bundle的层级结构:
1 ...
概述假设你希望为你的用户提供一些不同的工具,尽管这些工具需要在不同的环境中运行。
例如你希望工作室的艺术家能够从命令行运行maya和nuke,而不需要考虑它们的环境。
为了达到这样的需求,你会创建两个context:maya.rxt和nuke.rxt。
首先运行maya:
1]$ rez-env --input maya.rxt -- maya
然后你可以将这个命令包装在一个脚本中,而这个脚本被称为maya:
12#!/bin/bashrez-env --input maya.rxt -- maya $*
现在,你把它放在$PATH里,并对nuke也是同样的做法。
那么这个是你的用户就可以从输入maya这个命令来运行这些应用程序,而不需要直到这背后发生来什么。简而言之,这就是suites的意义,可以理解为包装,包含一组context以及运行工具的脚本。
rez-suite命令同样还是上述的例子,这里使用rez-suite工具来完成。
首先我们创建一个suite,命令将在当前工作目录下创建一个名为mysuite的文件夹。
1]$ rez-suite --create mysuite
...
概述rez包可以使用rez-build工具来构建和本地安装。这个工具有以下操作:
遍历一个包的变体
构建环境
在此环境中运行构建系统
每一个构建都来自构建的目录路径。(通常是构建的子目录或构建下的变体特定子目录)例如一个包含两个基本python变体的程序包:
12345+- package.py+- CMakeLists.txt (or other build file)+-build +-python-2.6 # build dir for python-2.6 variant +-python-2.7 # build dir for python-2.6 variant
在构建过程中,当前目录被视为构建路径。
构建环境构建环境是一个rez解析环境,它的需求列表是这样构造的:
首先使用程序包require列表
然后添加程序包的build_require列表。其它包的build_requires也会被使用
再然后追加程序包的private_build_requires
最后,如果包有变体,则追加变体的需求
构建时会创建一系列环境变量(REZ_BUILD_开头),在这里 ...
概述包可以从一个库复制到另一个库,就像这样。使用命令:
]$ rez-cp --dest-path /svr/packages2 my_pkg-1.2.3
使用API:
12345678910111213141516171819>>> from rez.package_copy import copy_package>>> from rez.packages import get_latest_package>>>>>> p = get_latest_package("python")>>> pPackage(FileSystemPackageResource({'location': '/home/ajohns/packages', 'name': 'python', 'repository_type': 'filesystem', 'v ...
概述软件包缓存(Package Caching)是一个将包复制到本地磁盘加快运行环境的功能。
比如你发布的包通常是在共享服务器上,那么运行python进程时,就会从共享存储上获取所有源码。缓存的意义在于将这些内容复制到本地,节省访问网络的时间成本。
启用缓存软件包缓存功能不是默认启用的。要启用它,需要配置cache_packages_path来指定缓存的路径。
你也可以细致的控制哪些包是需要被缓存的,只需要在它的定义文件(package.py)设置cachable = True 。我们需要单独控制哪些包是可以被缓存的,因为某些编译后的包无法支持重定向(即缓存到本地会丢失作用)。
还有一些配置会在包没有设置cachable=True的情况下缓存包。比如dedefault_cachable,default_cachable_per_package 和default_cachable_per_repository。
Notes:你也可以使用rez-env --no-pkg-caching来禁用包缓存。
验证当你解析一个环境后,可以通过rez-context输出的右侧栏中看到缓存标签,查看哪些 ...
视图布局还原布局的配置文件位置:
C:\Users\lingyun\Documents\houdini18.0\desktop
Houdini预设配置文件:
C:\Users\lingyun\Documents\houdini18.0
GUI设置
快捷键为 Ctrl + ,
可以设置图标大小,时间滑块大小,全局元素大小等(重启软件后生效)
课程里给了一个推荐的设置:
界面颜色设置
布局操作三角符号:布局向指定的方向全屏填充
单击中间竖排点:交换左右的布局
按住alt键点击竖排点:将左右布局切换为上下布局(反之)
在标签,鼠标右键也可以切换当前界面:
视图操作从上到下分别为,相机视角预览,区域渲染和侦测工具。
鼠标左键:旋转
鼠标中键:平移
鼠标右键:缩放
如果在物体编辑状态下,想要对透视图相机进行操作。需要按住空格键+鼠标左中右键。
这里说下侦测工具,可以右键选择侦测primitive元素,可以看到面的number编号。
这三个按钮是物体选择模式(选择元素过滤),从上到下分别为:物体集,元素集,动力学集。
对于元素的选择操作:
按住A+鼠标左键进行连带选择
按住A+鼠标中键选 ...
在不同的network层级下,Tab菜单的内容不一样。
快捷键Ctrl+B,最大化当前视窗。
选择节点按R,节点在Scene View视图中的显示开关。
I / Enter 进入元素级别
U 退出到物体级别
按住alt键,鼠标左键拖动复制节点 / 或者ctrl+C ctrl+V
L 自动排列所有节点
shift+L 自动排列选择的节点
鼠标中键,显示节点详细信息
按住Y键,切断节点连接
ctrl+F,快速查找节点
C,节点颜色标记
Z,节点形状标记
O,节点概览图
H,重置节点视图(最大化显示)
Ctrl+(1-9)在当前节点视图创建一个书签,按1可跳回当前节点层级
Shift+S 切换节点连线曲线模式
Shift+R 切换节点左右输入顺序
选择几个节点,按住A键,横向拖动即横向对齐,竖向拖动即是竖向对齐。
切换面板
alt+1 切换到Scene View
alt+2 切换到节点区
alt+3 切换到Parameters
alt+8 切换到Geometry Spreadsheet
快捷操作
选择多个节点,按住alt键拖动下游节点,将会自动创建merge节点
节点开关说明1 ...
Code
未读获取选择的节点123nodes = hou.selectedNodes()print nodes
创建一个节点12345678910# 创建一个geo节点在obj层级下node = hou.node('/obj')c = node.createNode('geo')# 或者hou.node("obj").createNode('geo')# 删除geo节点创建时默认包含的file节点(新版本houdini18不会有了)d = c.node('file1')d.destroy()
修改节点参数123456789# 修改一个box的x轴缩放node = hou.node('/obj/box1/box1')pram = node.parm('sizex')s = parm.set(5)# 修改box的primitive typetype = node.parm('type')type.set(1)
在节点的输出端创建节点1234 ...
复制并进行位移操作,效果如下:
属性面板的一些释义:
这里可以利用copynum的属性,达到一些效果,比如改变num值大于5的猪头模型颜色。(添加一个color节点)
Copy to Point节点按照参考模型的点分布,进行复制。(效果如下)
这里有一个制作魔方的示例。(这里用到了pointsfromvolume)
参数设置:
这里有一个猪头破碎效果的示例,这里只放一个节点截图:
Copy Stamp节点可以不需要参考,进行类似于copy to transform的复制操作。
区别于copy to transform节点,在使用参考时,需勾选Use Template Attributes
它也可以自定义一些变量给上游其它节点使用。
(大多节点里的变量都是本地变量,如NCY,CY,可以点击问号查看帮助)
Houdini 18 Copy新特性在18以前的版本,对多个 物体进行copy的方法。需要借用copy stamp节点来实现,如下图:
在houdini18的版本中,可以直接使用copypoint节点进行复制。如图所示:
Scatter节点按模型表面生成点,下图为一些基本参数注释 ...
本节列出来rez在某些情况下产生的环境变量,以及你可以设置的影响rez操作的环境变量。
Context环境变量这些是rez在解析环境中产生的环境变量。
REZ_RXT_FILE : 当前context的文件路径 ( rxt 文件)。REZ_USED :用于解析这个环境的rez安装路径。REZ_USED_IMPLICIT_PACKAGES : 用于解析环境的隐含包列表。REZ_USED_PACKAGES_PATH : 用于解析环境的软件包搜索路径。REZ_USED_RESOLVE : 已解析的软件包列表,例如 “platform-linux utils-1.2.3”。REZ_USED_EPH_RESOLVE : 已解析的临时包的列表,例如”.foo.cli-1 .debugging-0”。REZ_USED_REQUEST : 环境的包请求,以字符串表示,例如 “maya-2017 maya_utils-1.3+”。不包括隐含包。REZ_USED_REQUESTED_TIMESTAMP : 这个已解析环境的时间,由用户使用rez-env -time标志明确设置,否则为零。REZ_USE ...


