RBD —— DOP Nodes-程序员宅基地

技术标签: Houdini  # RBD  

目录

RBD Packed Object —— 创建表示大量刚体的单个DOP对象

Bullet Solver —— 子弹解算器


RBD Packed Object —— 创建表示大量刚体的单个DOP对象

        在DOP内创建单个DOP对象,从SOP导入几何体,使用每个primitive(包含变换和表示RBD的单个点),如packed primitive、sphere、tube等;每个primitive提供碰撞体,和点属性(用于储存方向、质量、速度的信息);

        所得到的DOP对象在表示大量的对象方面,比RBD Fractured Object DOP、RBD Point Object DOP更有效;当前仅适用于Bullet Solver;

Bullet Solver使用的点属性
Name Type Description
active int 指定是否对其他对象做出反应,默认由initial object type设置;
animated int 指定变换transform(pack后的)是否更新,仅active为0时使用,默认由initial object type设置;
deforming int 指定是否重建碰撞外形(即变形),默认由initial object type设置;
name string 对象唯一名字,会被Constraint Network用于识别约束赋予的对象;
orient quaternion 围绕pivot的方向;当调整此属性时,解算器会自动更新变换;
P vector 对象质心的当前位置;
pivot vector 应用方向的枢轴点;如computecom不为0,将从碰撞形状解算,否则由Center of Mass设置;
v vector 对象线速度,可由Velocity参数设置;
w vector 对象角速度(弧度),可由Angular Velocity参数设置;
age float 对象年龄(秒);
life float 最大年龄(秒);
dead int 指定对象在下次解算中是否被删除;POP Kill可被用于生成此属性;
pscale float 围绕pivot统一的缩放,与scale相乘;
scale vector 围绕pivot统一的缩放,与pscale相乘;解算器会自动更新碰撞体和inertial tensor;
restxform matrix 初始变换,当前变换是初始变换和position transform的合并;position transformPrestpivotorientpscale, scale定义,这些属性会自动初始化;
inheritvelocity int 非零则使用原v/w覆盖参数设置;
computecom int 是否从对象的碰撞形状自动计算质心,默认由Compute Center of Mass参数设置;
computemass int 是否从对象的碰撞形状和density参数自动计算质量,默认由Compute Mass参数设置;
density float mass=volume*density,默认由Density参数设置;
mass float 对象质量;如computemass非零将自动计算质量,否则由Mass参数设置;
inertialtensorstiffness float 缩放惯性张力(inertial tensor),值越高越难旋转,默认值由Rotation Stifffness参数设置;
bounce float 弹力,当两对象均为1时反弹不损失能量,均为0时碰撞后会保持静止,默认由Bounce参数设置;
friction float 摩擦系数,值为0则为无摩擦,默认值由Friction参数设置;
creationtime float 储存创建对象的解算时间$ST;
bullet_ignore int 指定是否完全被bullet solver忽略,将无法与其他对象碰撞;
bullet_add_impact int 在解算中发生的任何撞击,均会记录在Impacts或Feedback数据;可能会增加解算时间或内存;
bullet_want_deactivate int 禁止不移动对象的解算,直到对象再次移动为止;线速度和角速度阈值用于确定对象是否不一定;如Display Geometry关闭,可查看Deactivated Color;
bullet_angular_sleep_threshold int 角速度的睡眠阈值,角速度在此值以下达到指定时间即视为不移动;
bullet_linear_sleep_threshold int 线速度的睡眠阈值,线速度在此值以下达到指定时间即视为不移动;
用于自定义碰撞形状属性
Name Type Description
bullet_color vector 指定形状引导几何体的颜色;
bullet_deactivated_color vector 指定对象不移动或失活时形状引导几何体的颜色;
bullet_georep string 表示对象的碰撞外形,convexhull,concave,box,capsule,cylinder,compound,sphere,plane;设置为none将产生禁用碰撞的static对象,但约束仍会被赋予;
bullet_groupconnected int 当为Convex Hull时,指定是否为每个prim单独创建Convex Hull;
bullet_collision_margin float 增加外形间隙距离,以提高碰撞检测的稳定性和高效性;与Shrink Collision Geometry配合使用;不支持Concave或Plane;
bullet_adjust_geometry int 收缩碰撞几何体以避免collision padding增加对象有效尺寸;可避免初始碰撞外形相互渗透以提高性能,也可消除Collision Padding引起的间隙;
bullet_shrink_amount float 指定收缩碰撞体的量;
bullet_autofit int 是否使用对象边界框计算碰撞形状(当Geometry Representation是Box, Capsule, Cylinder, Sphere, Plane时)
bullet_primR vector Box, Capsule, Cylinder, Plane碰撞外形的方向,如AutoFit,此值会自动计算;
bullet_primS vector Box碰撞外形的尺寸,如AutoFit,此值会自动计算;
bullet_primT float Box, Sphere, Capsule, Cylinder, Plane碰撞外形的位置,如AutoFit,此值会自动计算;
bullet_radius float Sphere, Capsule, Cylinder碰撞外形的半径,如AutoFit,此值会自动计算;
bullet_length float Capsule或Cylinder碰撞外形的Y方向长度,如开启AutoFit,此值会自动计算;
碰撞属性
Name Type Description
activationignore string 如对象非激活,min_activation_impulse属性为正值,将不被任何对象碰撞激活;
activationxformgroup string 对agent,当使用min_activation_impulse时,激活刚体;默认是激活所有的agent刚体;该属性应包含transform group名字(指定哪个关节刚体被激活);
collisiongroup string 由collisionignore属性使用,用于忽略碰撞;
collisionignore string 该对象将不与任何匹配的对象碰撞;可使用DOP对象的名字,ID,DOP组,collisiongroup点属性;可使用POP Collision Ignore;
min_activation_impulse float 最小碰撞impluse,使对象从非激活切换到激活;activationignore用于避免被碰撞激活;
stickycollisionignore string 忽略粘性碰撞,类似collisionignore;
minstickycollisionimpulse float 最小碰撞impluse,使对象产生粘性;stickycollisionignore用于避免被碰撞激活;
maxstickycollisionobjects int 被粘住的最大数量,小于大于0则可粘住任何数量;
numstickycollisionobjects int 粘住对象的数量;
maxstickycollisionpoints int 最大锚点数(约束),用于将该对象粘住其他对象;默认为1,将在一对对象间创建一个约束;
速度限制属性
Name Type Description
speedmin float 最低速度(单位/秒)
speedmax float 最高速度(单位/秒)
spinmin float 最低角速度(弧度/秒)
spinmax float 最大角速度(弧度/秒)
accelmax float 限制速度的变化
angaccelmax float 限制角速度的变化
Force属性
Name Type Description
force vector 指定应用到质心的力
torque vector 指定应用的扭转力
drag float 当对象被targetv、targetw属性阻尼时,此属性用于进一步缩放;
dragexp float 更高的拖拽阻尼指数,将引起离目标速度或角速度(targetv/targetw)更远的对象比离目标较近的对象,更快的恢复;
airresist float 指定匹配目标速度targetv的强度;
spinresist float 指定匹配目标角速度targetw的强度;
targetv vector 指定的目标速度,与airresist一起去计算将对象移动到目标速度的力force;
targetw vector 指定的目标角速度,与spinresist一起去计算将对象移动到目标角速度的扭矩torque;
解算器内部保留的属性
Name Class Type Description
bullet_autofit_valid point int 当AutoFit开启,此值储存解算器是否已经计算碰撞外形属性(如bullet_length、bullet_primT);
bullet_sleeping point int 跟踪对象是否已被求解器置于休眠状态;会发生在对象和附近或受约束的对象低于线性阈值和角度阈值一段时间后;当手动唤醒对象时,应将deactivation_time设置为0,避免对象立即又回到睡眠状态;
deactivation_time point float 对象已低于线性阈值或角度阈值的时间,解释器会使用该值去禁用解算对象(已失活一段时间);
found_overlap point int 当解算器首次识别到对象时,会检测对象初始是否与其他对象重叠,避免被强制分开;解算器使用此属性值判断是否对前一帧执行此过程;
id point int 对象唯一识别属性,可被解释器使用去标识已添加的对象或从解算中移除;
nextid detail int 储存解算器将分配给下个新添加的对象;

Bullet Solver —— 子弹解算器

        此解算可使用简化的对象表示,如boxes、spheres、这些节点形状的组合;还可使用凸面体convex(基于几何体点的);也可与cloth、solid、wire碰撞;

注,与wire碰撞时,wire solver的collision handling参数应设置为SDF ;凹面体concave碰撞有些问题,不能完全支持;

Constraint Solver 解析碰撞和约束,都可并行,质量差异很小;

  • Parallel Gauss-Seidel (Islands),大量小的碎片更快(如堆叠的书);
  • Parallel Gauss-Seidel (Graph Coloring),对少而大的碎片更好(如巨大的坍塌建筑物);

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NapoleonCoder/article/details/135893085

智能推荐

mysql truncate某列_MySQL之删_delete-truncate-程序员宅基地

文章浏览阅读229次。MySQL增删改查之删_delete-truncate一、DELETE语句删除数据记录1、在单表中删除行语法:DELETE [IGNORE] FROM tbl_name[WHERE where_condition][ORDER BY ...][LIMIT row_count]①从表中删除满足WHERE条件的所有行;②没有WHERE条件,则删除表中的所有行基本格式:delete from wh..._mysql truncate 某行数据

【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎_华为云升腾云服务器实例可以用于推理加速的是-程序员宅基地

文章浏览阅读2.2k次。摘要:昇腾AI计算解决方案以极致算力,端边云融合、全栈创新,开放生态的硬核实力。用户可以使用标准的Matrix接口实现业务引擎,对外释放昇腾AI加速能力。从卷积神经网络中的矩阵乘法(GEMM)说起说起AI业务,就不得不提最经典的AlexNet,AlexNet模型于2012年提出,其被认为是计算机视觉领域最有影响力的模型之一。AlexNet网络主要包含八层,前五层是卷积层,最后三层是全连接层。 配合pooling及norm运算,以下列出所有卷积层和全连接层的参数规模以及每层的浮点计算量,从图..._华为云升腾云服务器实例可以用于推理加速的是

【比赛合集】19场可报名的「创新应用」、「可视化」和「程序设计」大奖赛,任君挑选!_程序软件创新比赛-程序员宅基地

文章浏览阅读932次。实时聚合多平台的(Kaggle、天池…)和(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注!近期CompHub对进行中的比赛增加了的识别,你可以直接在CompHub中浏览当前可报名的比赛, 而不用进入比赛主页才知道比赛的报名状态。本账号将会不定期推送当前可报名的比赛,方便大家查阅。 enjoy it!上期推送了,本期推送「创新应用」、「可视化」和「程序设计」这三个类别当前可报名的大奖赛。更多比赛信息见或 点击文末以下信息仅供参考,以比赛官网为准。_程序软件创新比赛

Linux中jprofiler安装使用教程_jprofiler linux-程序员宅基地

文章浏览阅读4.3k次,点赞2次,收藏9次。jprofiler是一款很好的性能分析工具,今天我们将介绍如何在Linux中安装使用jprofiler一、下载官网下载jprofiler,此处我们选择jprofiler9.2.1版本:https://www.ej-technologies.com/download/jprofiler/version_92注意,本地windows和Linux服务器要安装同一个版本的jprofiler,linux我们选用.TAR.GZG格式的安装包,windows安装需要填写注册码。Profiler ._jprofiler linux

浅谈流形学习_流形 知乎-程序员宅基地

文章浏览阅读1.4k次。作者:暮暮迷了路链接:https://www.zhihu.com/question/24015486/answer/194284643来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最高票解释的很学术~我就说个定性而非定量的解释。流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗..._流形 知乎

ubuntu20.04 安装 Qt 后无法启动,出现报错:Could not load the Qt platform plugin “xcb” even though it was found!_could not load the qt platform plugin "xcb" in "" -程序员宅基地

文章浏览阅读4.3k次,点赞46次,收藏54次。本篇博文是记录了作者在安装Qt时遇到的问题以及解决方案。其中包括了Qt在ubuntu系统中的安装以及解决安装后无法启动Qt以及出现报错的问题(Could not load the Qt platform plugin "xcb" even though it was found)。_could not load the qt platform plugin "xcb" in "" even though it was found.

随便推点

强化学习笔记:目标、奖励、回报和回合_强化学习中的奖赏信号-程序员宅基地

文章浏览阅读1.1w次,点赞15次,收藏33次。在上一篇我们介绍了强化学习问题的形式化(数学)框架:马尔科夫决策过程。本篇以及后续几篇继续讨论这个形式化(数学)框架下的关键要素和概念,如奖励和回报、策略、值函数、贝尔曼方程等等。_强化学习中的奖赏信号

Linux 配置SFTP,配置用户访问权限_subsystem sftp internal-sftp-程序员宅基地

文章浏览阅读6.5w次,点赞16次,收藏51次。版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文。我推荐使用SSH自带的SFTP,SFTP是Secure File Transfer Prot..._subsystem sftp internal-sftp

BITS_TO_LONGS(nr)宏函数实现_bits_to_longs函数-程序员宅基地

文章浏览阅读389次,点赞8次,收藏7次。该宏定义中,BITS_PER_BYTE定义在include/linux/bits.h文件中,值为8。在x86_64架构下,改宏定义表示为,根据传入type的类型,获取对应类型的bit位数。整体宏函数的作用,就是传入的nr(一般指bit位数),需要占用long型数据的个数,不足一个时候向上取整。公式中减一,是为了保证除操作向上取整。_bits_to_longs函数

0x0000050蓝屏srvsys_分享蓝屏0x00000050提示srv.sys的解决方法-程序员宅基地

文章浏览阅读2.4k次。内容来源:系统家园今天来聊聊一篇关于分享蓝屏0x00000050提示srv.sys的解决方法的文章,现在就为大家来简单介绍下分享蓝屏0x00000050提示srv.sys的解决方法,希望对各位小伙伴们有所帮助。现出现蓝屏代码0x00000050现象,最可能的原因就是电脑内存的故障。也可能是软件不兼容性、病毒破坏了NTFS卷等原因导致的。方法一:一、了解了故障原因的之后,先对电脑上每个硬件进行注意替..._srv.sys蓝屏解决方法000050

2019-05-11 java学习日记-程序员宅基地

文章浏览阅读189次。May 10,2019 - JAVA 学习日记 Day1 一.计算的概述1,计算机是什么?2,计算机主要应用于哪几个方面?3,计算机硬件与软件?1.1,计算机(Computer)全称电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理的现代化智能电子设备。由硬件和软件组成,没有安装任何软件的计算机称为裸机,常见形式有台式计算机、笔记本计算机、大型计算机等。计算...

套接字编程-实现基于TCP/IP和UDP的客户端和服务器-程序员宅基地

文章浏览阅读1.1k次,点赞33次,收藏12次。套接字编程允许你实现基于网络的应用程序。在Java中,java.net包提供了进行网络通信所必需的类和接口。TCP/IP和UDP是两种常见的网络协议,其中TCP是面向连接、可靠的流传输协议,而UDP是无连接、不可靠的数据报传输协议。