这是第五周了.这是我们上周得到的结果，我们得到了WHITE WATER RIVER SIM，并且为它制作了表面，本周你就可以继续使用这个仿真。
你可以自己来创建，也可以使用我提供给大家的东西，本周我们将盆点学习为WHITE WATER SIM创建次级元素，因为:urface只能给到我们这些结果
我们将从在表面上创建FOAM开始，也就是上面那些白色的泡沫，我们先来看看FOAM是在什么地方生成的.FOAM就是水上的一些泡沫，
我们需要找出这些泡沫在水上出现的位里，当前这里的COLOR是一个基于流体SPEED的GRADIENT，如果我们这样来考虑它，或许有些WHITE WATER会在这个地方出现。
或许还有这里与这里，但是当你看看它，特别是这里的CURLING RIPPLES，它们是在岩石的底部，实际上它们运动谏度早不快的，而这些部分是运动很快的，
我们不需要在这里产生WHITE WATER.因为它们不够紊乱，WHITE WATER通常是在最紊乱的地方显示出来的，那么我们应该如何将TURBULENCE计算出来呢。
这里有个VELOCITY FIELD，上星期我们讲过了CURL.我们可以使用VELOCITY的CURL来决定那些很紊乱的地方。记住CURL是这样的，VELOCITY是向这个方向运动的。
如果在水里有个STICK.它是固定在这个位置上的，那么curl就是旋转成分了，因为水在这里的速度比这里的要快，我们的STICK就会旋转了。
因此我们就可以使用它，使用CURL的长度来决定FLUID SIM的最紊乱的地方在哪里，因此我们就在这里得到了一个文件，创建了一个相机，然后为水制作表面。
因此我们就使用上周创建的WHITE WATER SURFACE，并且引入FLUID SIMULATION。这里就有所有的点了，这里有VELOCITY VOLUME与SURFACE VOLUME.
我们要做的就是输出它.只是VOLUME，因为我们擂要这些东西来创建FOAM.创建一个ROP OUTPUT DRIVER.创建一个BLAST,然后移除所有不是VOLUME的东西。
然后将它保存在这个叫做name的属性中，使用@name=*.然后delete non-selected，你会看到我们留下的就只有4个VOLUME了，这里还有一些其他的属性，我们需要的就只是name.
这里的文件尺寸变得很大了.因为仿真很大，因此最好就去掉那些你不需要的东西，因为它就会增加你的文件尺寸，因此我们就不需要point attribute.
vortex也不需要，我们唯一希望保留的primitive属性就是name，这就是H13的一个新功能了，你是直接输入要保留的属性名，而不是输入要删除的。
去掉它，看看是不是跟以前一样，是的，我们就保留这里的name， 这就是我们得到的结果了，我们得到了VOLUMES，接着输出它，将它起名为whitewater_field.
将它起名为white water_fields_$F4.bgeo，实际上输出它们的时侯是可以压缩的，让文件尺寸变小，将frame range设Z为从1到100，按下RENDER，它就应该比较的快了。
输出它以后再读取回来，点击右键，创建copy parameter，使用copy relative referrence，这里就得到了4个VOLUMES，还有这些组，非常的直观。
接下来要做的就是，很明显我们看不到任何的东西，我们希望给到VELOCITY FIELD curl，这里有个volume analysis，你可以分析curature, gradient, laptacian，但是这里没有curl.
但是VDBanalysis上就有好些选项，因此我们要使用的就是 curl了，但是将它连接到这里是不会给到我们任何东西的，因为它们是VOLUME.
它们不是VDB volume，它们需要成为VDB以后才能使用VDB工具来操作，因此我们就需要转换它们，因此就创建一个convertVDB,
我们需要将它转换为VDB.接着我们创建一个BLAST.我们希望将VELOCITY FIELD独立出来，因此这里就有了4个VDB，因此就使用￥name=vel.*
这里有了XYZ，这个VDB就期待三个成分被输出到一个primitive中，因此我们就还需要使用一个VDB Vector Merge，它就给到了我们警告信息，
或许大家看不到，但是它说，component create different transform，老实说我不知道这是什么惫思.但是现在有个vel，它是矢量类型的。
现在我们就进入这里，它就是在计算curl了，但是保持了名字vel，因此就将它修改为append operation name，我们知道它就是VELOCITY的CURL了。
或者我们就可以将它修改为CURL.这就是我们的curl velocity,然后使用一个volume visualization，它并没有显示出来，因此我们就需要在转换一次，返回到HDUDINI的VOLUTE.
然后使用curl.x curl.y, curl.z,这里显示的东西还是不是很多，但是相信我，它是可行的.我们需要多做几步来显示它，但是我们会继续制作的。
因此我们就使用这里的SURFACE，创建一个VOP SOP.将VDB ANALYSIS连接到第二个输入中，然后进入里面，然后创建一个VOLUME SAMPLE,
根据点的位置来为这个VOLUTE进行取样，但是记住我们要取样的是一个VECTOR，创建一个volumesartplevfile，将这个连接进来，然后提升它，
因此我们需要将它传递给VOLUME，然后将它传递给COLOR，然后在这里使用OP语法，接着一个反引号，使用opinputpath,他就会返回operator的路径
我们需要定义这里的INPUT，它就是与这个referrence相对的了，它的意思就是说获取这个节点的输入，获取第二个输入，0是第一个，1就是第二个。
接下来是三.四.按下ENTER.强迫它编译.崩清了.稍等.我暂停录像，然后再启动.现在回来了，我们就将CURL的值连接到了COLOR中，
得到了这个彩红，因为它显示了XYZ，实际上我们要使用的是CURL的长度，你会看到它们基本上都是白色的，这里实际上是有值的，但是它们都是大于1,
因此就需要重新进行fit操作，接若提升SOURCE MIN与SOURCE MAX,这里就是定义了CURL的MIN与MAX，因此它就是在0到1的范围中了。
将它起名为Minimum curl,我需要重新设定窗口的大小，但是我没有这样做，很抱歉.然后将这个起名为Maximum curl,然后调整它，将它设里为10
因此就开始得到一些值.然后将它的值设1为5.因此值小于5的那些就是黑色了，如果超过10就是白色的了.我想我们就可以更激进一些.
你会看到这里的白色就是我们希望产生泡沫的地方了，这些地方是有很多涟漪的， 中间这些地方就役有什么了，因为虽然这里的水运动的很快，但是并没有很多的turbulence.
这里也是，这里有turbulence，它就很完美了，我们总是可以以后来调整它的， 但是你会看到它也是在计算背面的·因此下一步我们要做的就是切掉表面下的所有东西，
因为我们并不希望从下面这里发射foam.因为这样会浪费粒子， 因此下一个录像中我们会去掉它的底部，我们在以前的教学中说过，我们是不希望从表面的底部发射的。