pyro 思路与渲染总结

思路

pyro 主要分为三个大的步骤:1、物理模拟;2、后期;3、渲染输出。

物理模拟

和素描一样,首先必须把形打好,从粗到细,一步步精确。从最初的各个 source 加入,到整体塑形,最后打细节打磨,每一步都要知道在干什么:

1、source 加入;这一步主要控制 density,temperature 这两个关键 source。先不要管 burn,根据火势大小去调节,最后加入burn,注意火焰的细节。这一步直接就影响到最后渲染输出的大形,如果这一步不对,那么后面怎么做都是徒劳的。

2、开始 field 调整;把 source 内部和之间过度细节表达好,火焰出现[……]

继续阅读

发表在 houdini, Pyro | pyro 思路与渲染总结已关闭评论

[Houdini Tip Everyday] Pyro 输出设置

Pyro 输出设置已经比较固定了,除了帧率,视频长度和分辨率等可能根据不同场景用不同的参数,其它都基本固定。注意下面说的是输出设置,平常在进行模拟调试的时候并不需要:

对流优化

对流,advection,其实是 pyro 的物理运动一个核心概念,就是 vel (速度)搬运 density,temperature 和 burn 的过程。

可以想象如果我们拉近 pyro,看到的实际上是马赛克,类似于图片拉近会变模糊。这些方块就是 source,随着一帧帧的运动,这些 source 按格子移动,这时就产生误差,因此,这个 advection-reflection 其实就是发现这[……]

继续阅读

发表在 houdini, Houdini Tip Everyday, Pyro | [Houdini Tip Everyday] Pyro 输出设置已关闭评论

使用 shape:disturbance 做细微调整

使用 shape: Turbulence 更精确控制 pyro 外形 – 如卓的3D建模特效世界如卓的3D建模特效世界

上一篇用了 turbulence 得到明显的扰动效果,这里开始时细微调整,主要观察的是 pyro 的外围和内部层次。

其调整思路和 turbulence 差不多,可能只是个别参数系数不一样。

首先和 turbulence 的 swirl 不同,disturbance 用的是 base block size 来提升精细程度。block 越小,细节就越多。continue 模式下细节变化会更小。

roughness 越小,细微的差别越大。

lucun[……]

继续阅读

发表在 houdini, Pyro | 使用 shape:disturbance 做细微调整已关闭评论

使用 shape: Turbulence 更精确控制 pyro 外形

使用 fields 更进一步的精细控制 pyro – 如卓的3D建模特效世界如卓的3D建模特效世界

上一篇是用的 fields,它通过 source 的字段,用 ramp 渐变(主要是用 temperature 作为锚点)使 pyro 的浓度和燃烧达到更精细的效果。

而 shape 这个 tab,则着重改变外形。整个 shape 核心的影响因素是 vel,也就是速度,在速度的基础上加入扰动属性,改变 pyro 的形态。

Turbulence

turbulence 是大外形,一般先从大外形开始修改,然后再用 disturbance 和 shredding 做微调整。

[……]

继续阅读

发表在 Pyro, houdini | 使用 shape: Turbulence 更精确控制 pyro 外形已关闭评论

使用 fields 更进一步的精细控制 pyro

[Pyro核心基础] Pyro 的基本物理概念和基本元素 – 如卓的3D建模特效世界如卓的3D建模特效世界

上面引进了进本的 pyro 物理概念:density,temperature,burn/flame,velocity。通过调整这些参数可以大致得到一个 pyro。下面介绍通过 field tab 里面的字段,进一步精细模拟 pyro。

可以看到这个 tab 下的 density,temperature 和 flame 是 source 里面的字段,其实最主要的,就是依靠这几个字段进一步调整 pyro。相比之前的数值调整,这一块的调整会进一步精细,相当于对这些数值进行微调。[……]

继续阅读

发表在 houdini, Pyro | 使用 fields 更进一步的精细控制 pyro已关闭评论

蜡烛渲染

系统学习 pyro,主要流程是 pyro source,volume 化(进入物理模型),pyro solver,然后 bake。

关键的几个点这里提点一下:

1,火焰的蓝黄渐变是用 scatter 往灯芯上散 point,然后计算火焰 point 到灯芯 point 的距离(len),并 fit01 归一化,用 ramp 把 temperature 和 density 进行 value 渐变(multiple),然后 bake 的时候进行 fire 颜色渐变,渐变过程是黑(不可见)——深蓝——黄。

注意,原模型以及 volume 化,因此需要在 volume wrangle[……]

继续阅读

发表在 houdini, Pyro | 蜡烛渲染已关闭评论

[Houdini Tip Everyday] 两种引入 USD 文件对比

已经不能叫 houdini tip everyday 了,毕竟不是每天都写。

pipeline 中一般是以 USD 文件和一些 cache 文件来作为上下游工作交接的。primitive 中一般都会含有除了基本的 geometry 等属性外,还会包含很多其它属性,比如 path, temperature 等。因此在引入 USD 文件时,如果我们做破坏效果,可能会对这些属性进行重构,这相当于把上游的黑盒打开了。

首先用 reference 在 /stage 下引入,同时在 file pattern 填 USD 文件路径。这里注意最好用$OBJ 来代替绝对路径。

传统教程做法

[……]

继续阅读

发表在 houdini, Houdini Tip Everyday | [Houdini Tip Everyday] 两种引入 USD 文件对比已关闭评论

[Houdini Tip Everyday] icing(糖霜)模型制作

这个模型主要是用到点的坐标轴变换原理。

从 Resample 线开始

首先做一条线,然后 resample 多个点,记得关掉 Maximum segment length,因为我们需要在线上取任意密度的点。resample 120 个点,打开 curveu 属性,curveu 就是这条线上的 point 归一位置,方便后面 ramp 调整。

然后利用 copy to point 把这些点取出来:

可以看到我把线变成了点,houdini 绝大部分都是在对 point 进行 vex 编程,比如一些 vop 节点或者直接写代码 wrangle 节点等,从而做到精准控制,而[……]

继续阅读

发表在 houdini, Houdini Tip Everyday | [Houdini Tip Everyday] icing(糖霜)模型制作已关闭评论

[Houdini Tip Everyday] 发光体的制作

houdini 渲染的时候有时需要一些自发光的效果,比如灯芯燃烧,灯芯需要发光。这里做了一个简单发光效果。

制作一个环形球体

这里代码是直接 AI 生成的,grok 生成的。主要是遍历 primitive,然后符合需要选中的 primitive 设置熟悉 ring = 1,否则 ring = 0。

然后把 ring = 1 的 primitive 设置为一个组:emit_group。这里特别要注意的是:

base group 的 vex 表达式必须不能有空格!

最后给这 emit_group 的 primitive 的设置属性 emit = 1:

[……]

继续阅读

发表在 houdini, Houdini Tip Everyday | [Houdini Tip Everyday] 发光体的制作已关闭评论

[Houdini Tip Everyday] 用 karma 渲染 Pyro

虽然网上很多用 karma 渲染 pyro 的教程,但可能是因为版本文件,我在 houdini21 版本上使用那些教程的方法要么不奏效,要么太复杂或者不系统,现在我摸索了一个在 houdini 21 版本的方法,不太清楚在旧的版本是否奏效。

首先,假设我们已经做好了 pyro 的 sim:

接着,我们开始在 obj 中引入 pyro bake volume,并调整状态,这里不去赘述调整过程:

pyro bake volume 是一个 sop 节点,主要两个作用:

1、确定后期渲染数据;

2、把这些数据缓存每一帧,stage 的时候不需要再重新计算。

[……]

继续阅读

发表在 houdini, Houdini Tip Everyday, Pyro | [Houdini Tip Everyday] 用 karma 渲染 Pyro已关闭评论