Realflow 2017中文版是一款专业的流体动力学模拟軟件,涵盖多种设计工具,用户可以轻松创造出各种纹理效果,及其逼真,操作简单,有需要的用户可以下载体验哦!一定会为您带来意想不到的效果。

軟件介绍
RealFlow是專用于水面波浪的模擬,如海面、落入物體後水面泛起的漣漪、行駛在水中的船(包括破浪泛起的粒子水花和産生的水面拖尾),能夠完成的項目包括:物體落入水面後激起波浪,並且隨水面上下波動,還能産生濺起的水花。粒子落在水面上泛起的漣漪。在水面上快速運動的物體産生尾迹、水花和波浪,常用于船只的航行模擬。表現動態、自然波動的水面,如湖泊、水池、海洋等,還能産生海水拍岸濺起海浪水花的效果。
RealFlow没有提供任何照明和渲染功能。你可以通过调节粒子流的UV坐标来拖拉纹理,从而创建各种纹理效果。你可以为网格创建UV坐标,并且创建 “Wet Texture Maps” (打湿纹理贴图)。它可以创建非常丰富和真实的纹理效果,但不能在传统的场景中进行纹理贴图。通过为軟件重写流体解决方案,现在的模拟速度提高了20%到 30%。程序可以更好地处理多处理器系统和巨大的内存分配。最具创新性的功能是“Wet Texture Maps”(打湿纹理贴图)。当粒子碰到表面,它在物体的表面上“绘制”纹理。因此,它可以在表面上留下痕迹或者“打湿”纹理。
Realflow 2017特色
1、質量:每一個模擬都非常卓越,效果非常棒。
•簡單的導入你的場景,從RealFlow添加液體和直接渲染出來。
•直接在RealFlow微調真實材質,連接如速度、漩渦度或生命值。
•有效靜態幀或動畫序列。
•采用最先进的基于物理渲染引擎:Maxwell Render™。
•精確的碰撞模擬。可以在複雜幾何和超速的對象模擬精確和快速的碰撞。
Hybrido也受益于 RealFlow 2015更深入的OpenVDB算法的集成。
Hybrido翻轉模擬現在更快,更准確的碰撞,和更好的內存管理,尤其是在處理複雜幾何和快速移動的對象。
2、速度:DYVERSO,新DYVERSO工具(DY-SPH DY-PBD)流体动力学。
新版DYVERSO(DY-SPH,DY-PBD)的流體解算程序效果驚人,使您的模擬創作更上一層樓。新的DY-SPH和DY-PBD解算程序功能強大,並且GPU也得到加速您的模擬創作速度大增。超出您的期待,創建光滑的層狀網格,使您的模擬創作更加逼真。直接渲染RealFlow模擬仿真。
3、控制:用戶界面
•RealFlow 2015新版本的用户界面挤满了大量的新的增强工具,使它更友好,更人性化。
•增強的用戶界面:關系編輯器節點更緊湊。
•節點面板:點擊工作流。
•參數面板:動畫按鈕,表達式,Params鎖定,ramps曲線小部件,滑塊與鼠標中鍵的控制。
Realflow 2017新功能
新的呈現令人難以置信的細節的基礎求解器。
新的飛濺和泡沫發射器迅速處理。
增强的工作流程:RealFlow Graphic
新的,可視化的基于節點的方法來設置場景元素之間的聯系。
创建RealFlow的模拟图,无论何时何地在模拟过程中,您可以 创建/修改/提取 场景元素中数据。
快速高品质预览: Maxwell Render(麦克斯韦渲染)
預覽你的模擬呈現在背景與麥克斯韋渲染質量。
新的文件格式:Alembic
新的文件格式允許您更大的靈活性,在你的管道,並提供高效的數據交換。
改進壓裂工具
更快更可控的破碎。
改善了的网格化算法 RealFlow RenderKit
新的網格算法意味著更小,更富有細節的網格。
Realflow使用教程
創建漩渦
RealFlow能处理多种模拟任务:流体,刚体和柔体,波浪,风格化流体。用这些工具几乎能完成所有的任务,但仍有一种不行:气态液体(gaseous fluids)
当然没有必要用复杂的计算写一个基于Python的烟雾解算器。另外最常见的方法已经被申请成专利了。(例如 J. Stam’s “Stable Fluids”流体静力学)所以,如果你要编写一个商业烟雾解算器,你必须开发自己的方法,那是一件非常困难的事。此外一切都要适应RealFlow本身,比方说,特色。
图1.RF_toolfactory VortexFlow插件基于密度的烟雾模拟。
當你看一下模擬的煙霧時,我會發現兩個重要的事。
1.煙霧上升是由于浮力
2.有大的渦流還有小的渦流(紊亂、卷邊)
产生小的紊乱和卷边方法,称为(涡流限制 Vorticity Confinement)。这个技术引入速度(velocity)在某些领域,创建小的速度随机。涡流限制(vorticity Confinement)实际上增加了烟雾的真实感,使一切变得自然。
然而在許多情況下,是不需要這麽多細節的。例如縮放很大的煙流(煙羽),或遠處的煙霧源。問題是,要做大的渦流是非常困難的使用RealFlow標准流體解算器。
所提出的方法實在是很基礎的,只達到近似級水准,但你在使用這方法時可能會找到一個新的方法來拓展腳本,去達到更好的效果。真正工作使用時,一定要經過試驗,腳本對錯誤是非常敏感的。因此,本教程實際上是快速的方法提示,而不是全面詳細的討論。但也許你會覺得很有意思,看看你可以用這個方法獲得什麽。
准備
主要的困难是,迫使流体粒子沿着圆圈发射器路径运动,像升起的烟雾。实现这种行为的方法或公式是一定要引入Python腳本。一个好主意是在互联网上搜索,你很快就会发现两种基本方法:層流(laminar)和湍流(turbulent flow)
在層流流體下在某一個方向沒有湍流,可以在水管或通道觀察到這樣的行爲。湍流是非常難以描述的,因爲流體看起來沒有一個確定方向。
在湍流中你能看到漩涡和不同方向的流动。層流和湍流之间有这样一个关系:超过一定标准时,層流可以变成湍流。这个标准就是的雷诺数(Reynolds numbe)。在漏斗,狭窄的管道或障碍物里面的流体可以看到,这两种状态之间的转换。
層流
這種方法將要使用的公式被稱爲“Stokes定律”。這個術語,用來描述流體中球形體(粒子)的摩擦力。這力的大小也取決于粒子半徑和流體粘度。跟其它任何摩擦力一樣,Stoke力導致body/particel減速。在我們例子中,力作用在周圍流體。
Fs = 6 ∏ η R v
Fs 是Stokes 力,∏是 pi,η('Eta')是流体动力学粘度。R是粒子半径,v是速度。这个方法优点,RealFlow可以提供所有必要参数给这个公式。这个思路是创建一个層流的力场抵消流体的上升运动来减速粒子。另一方面,粒子的浮力使流体上升。这上升流体在層流力场影响下会减缓粒子。这意味着,必须作用在粒子云外面。
为得到粘稠的效果必须要有很高的粘度值(viscosity)。这也将减慢整个粒子流,当粒子流累积在流体前面。因为动力学粘度值 1是水20°C时,它可以被忽略掉。但你能模拟不同流体。为什么最终是负的力,是为了抵消了上升粒子流:
Fs = - 6 ∏ηR v
图 2:層流(laminar flow)说明
引入负号,因为这力能抵消粒子向上运动。最终,我们得计算粒子半径 R。当你参考RealFlow手册时,会看在发射器"Resolution"参数下看到这个半径公式。这正是我们需要的:
湍流(TURBULENT FLOW)
思考湍流時你會遇到一個困難。當流體在障礙物周圍,物體後面就會産生低壓區。
在前面有高一點的壓力。這不同的壓力就是流體的阻力,這力可以被表達成:
Cw是阻力系数,A 是障碍物横截面。因为我们可以把流体粒子看作一个个小球体,Cw值是0.45,A就是简单的圆面积:∏R2(译者注:原文应该写错了)
圖3:湍流圖例
尽管这个公式能产生一种力,但仅是一方面,并不能产生湍流。仅仅是流体经过时的力(fluid experiences 不知道合适怎么说)。要找到層流变成湍流时间点,雷诺系数(Reynolds number)(后面写为Re)是很重要的。定义Re不是隐藏的,可从RealFlow标准参数来计算,但这仅仅是达到实际效果并不能正确描述湍流物理现像。
湍流和卷曲需要一个更加复杂的方法,基于从Navier - Stokes方程的向量场。这各种物理性质的向量场,通常存储成网格(grid)。这是“基于网格的流体”一词的由来。(grid based fluids)
RealFlow 湍流参数
RealFlow的标准粒子提供了湍流参数,但这不是自定义的值,是SPH(译者注:Smoothed Particle Hydrodynamics)流体内部参数。用腳本可以写成矢量格式:
ω = Vector.new(ωx, ωy, ωz)
腳本
对于此腳本,要使用RealFlow辅助器,因为它是一种特殊功能,可以给粒子施加外部力给网格流体或物体,这是方法很稳定,可放心使用。 腳本辅助器可以这样添加:
Edit > Add > Daemons > Scripted
辅助器结点面板提供了"Edit"功能。请注意腳本窗口模式。这意味着,你必须关闭此窗口再次访问底层的RealFlow面板。这实在是烦人,但不能改变。
为了使一切更方便,你也可能添加一个小型的GUI(图形用户界面)。关于这部分更多说明请参看,RF腳本那本书,GUI部分。如果你要创建GUI,请创建成Batch Script.如果你要加在辅助器”def onSimulationBegin"部分,RealFlow可能会崩溃。
#--------------------------------------------------
# Function: applyForceToEmitter
# This function is called by the simulation engine
# when external forces should be applied to the
# particles in the emitter.
#--------------------------------------------------
import math
import random
def applyForceToEmitter( emitter ):
normalThreshold = 0.85
emitterRes = emitter.getParameter("Resolution")
pRad = 1 / ((1000 * emitterRes) ** (1/3))
dynVisc = 1.0 # this is not RF’s Viscosity value!
particle = emitter.getFirstParticle()
while (particle):
pVel = particle.getVelocity().module()
pNormal = particle.getNormal().module()
rndRange = random.uniform(-0.02, 0.02)
if (pNormal >= nornmalThreshold + rndRange):
stokesForce = -6 * math.pi * pVel * pRad * dynVisc
if (scene.getAxisSetup() = = AXIS_SETUP_YXZ):
vortexVec = Vector.new(0, stokesForce, 0)
else:
vortexVec = Vector.new(0, 0, stokesForce)
particle.setExternalForce(vortexVec)
particle = particle.getNextParticle()
这个腳本是非常简单的。在第一部分,粒子半径取自发射器的“Resolution".然后腳本遍历所有粒子,读出单个速度矢量。
使用的X,Y和Z單獨的值,而不是矢量的大小
這是計算“module()”語句。這個方程是:
magnitude = sqrt(x2 + y2 + z2)
這個方程(module())結果是標量(僅僅是數字),不是由三個值組成的矢量。這個操作的原因是矢量不能作爲檢查條件來判斷是否滿足條件。但用浮點數字就不存在這個問題。
相同的过程(向量 - >模 - >标量)是适用于粒子的正常方向。这个方法必须要找出外面流体,法线模长(normal’s magnitude)是这腳本最重要和最敏感的值(见参数的调节)。所以腳本仅仅决定粒子在流体外面,力(=阻力)将接受场景设置。为了变得更丰富一点,加一点随机值到法线的模(normal’s magnitude)。
參數調節
正如所提到的,主要思路是,減緩流體外部粒子。內部粒子仍然保持初始速度,和拖緩粒子速度。由于粘度(也稱爲內部摩擦力),整個流體最終會放慢,粒子的聚集在流體的頭部。
圖4:相互影響的不同力,最終創建上升的煙霧
上面圖片說明的方法:Stoke力Fs減緩流體外部粒子。浮力Fb作用在所有粒子上,産生了一個吸引力,使粒子向下。在這個邊界可以看到渦流
想得到這個效果,必須標志出流體粒子的外面,這是爲了檢查法線。越接近流體粒子外部法線就越大。問題是這個值,發射器resolution值越高,它就減小。用“Resolution”值爲1.0,"normalThreshold“變量可以是1.5或更大。用非常高的設置,是0.5或更小。不幸的是不能爲每個resolution設置一個固定的值,因爲粒子數和法線長度關系不是線性的。意思是你要測試和試不同的值
羽流的质量取决于法线阈值(normal threshold)
圖5.一個上升煙的模擬
这已经调整的“normalThreshold”0.85,circle发射器 缩放是(0.5,0.5,0.5),Resolution值是4.0,Speed是2.0
另一個重要的值是發射器的“Viscosity”參數。如果它太小,那麽效果不能完全體現出來。
能达到最好的效果设置值在4.0与6.0之间。如果有逃逸的粒子,可以加一个"k Volume"场,或放一个盒子在发射器附近。另一个可能是增加“min substeps”(这值对逃逸粒子有很大影响)