Manual/PartX/Fluid Simulation
Wikipedia,自由的百科全书
Contents |
Fluid Simulation 流体模拟
{{RefBox |mode=Object Mode / Edit Mode (Mesh) |panel=Physics Context → Fluid Simulation |hotkey=F7KEY |lang=en }}
Description 概述
While modeling a scene with blender certain objects can be marked to participate in the fluid simulation, e.g. as fluid or as an obstacle. The bounding box of another object will be used to define a box-shaped region to simulate the fluid in (the so called simulation domain). The global simulation parameters such as viscosity and gravity can be set for this domain object.
当建造一个场景 blender确定物体能标记参与流体模拟,举例来说:如流体或一个障碍物。 另外的一个物体的范围盒子将定义一个盒子形状的区域下模拟流体的障碍物。 那全局的模拟参数 , viscosity和gravity能设定给这个范围的物体。
Using the "bake" button, the geometry & settings are exported to the simulator and the fluid simulation is performed, generating a surface mesh together with a preview for each animation frame, and saving them to hard disk. Then the appropriate fluid surface for the current frame is loaded from disk and displayed or rendered.
使用"bake" 按钮几何学 & 设置被输出到模拟和流体模拟是被执行, 预览每帧动画会产生一个表面网格, 并储存在硬盘上。 Blender在当前帧会从硬盘载入适当流体的表面播发或渲染
Process 过程
In general, you follow these steps: 大体上, 你遵从这些步骤:
- 1. Model the scene (objects, materials, lights, camera)
- 1.创建场景(物体,材料,灯光, 照像机)
- 2. Designate the portion of the scene where the fluid will flow (the domain)
- 2.指明场景的一部分为流体,将会流动(the domain(领域))
- 3. Specify the functions of the various objects as they relate to the fluid (an inlet, or outlet, or obstruction, etc.)
- 3. 为不同的物体指定不同的流体功能(一个进水口, 或出水头或障碍物, 等等。)
- 4. Create the fluid source(s), and specify its material, viscosity, and initial velocity.
- 4. 创建流体的源 (s),和指定它的材料,粘度, 和初速度。
- 5. Bake in a preliminary simulation
- 5. 烘焙一个初步的模拟.
- 6. Revise as necessary, saving changes
- 6. 修正需要的地方, 保存改变
- 7. Bake in a final simulation
- 7. 烘焙一个最终的模拟.
Options 选项
- Domain/Fluid/Obstacle/Inflow/Outflow 领域/流体/障碍物/流进/流出
- Selecting one of these buttons determines how the enabled object will be used during the simulation. Each button determines a different functionality/interaction, and each has different further options that will become available.
- 每个钮决定一个不同的功能性质/互相作用,每个有不同的选项可用。
| Mesh rendering 网格渲染:
If the mesh has modifiers, the rendering settings are used for exporting the mesh to the fluid solver. Depending on the setting, calculation times and memory use might exponentially increase. For example, when using a moving mesh with subsurf as an obstacle, it might help to decrease simulation time by switching it off, or to a low subdivision level. When the setup/rig is correct, you can always increase settings to yield a more realistic result. 如果网格有修改,rendering 设置为输出网格到流提的解算被使用。仰赖于设置, 计算时间和你存会以指数上升。例子, 当移动一个作为障碍物的网格和细分表面的时候,关掉细分, 或给一个低的细级别,能减少模拟时间。当setup/rig 是正确的时候, 你总是能增加设置产生一个比较现实的结果。 |
Domain 领域
The bounding box of the object serves as the boundary of the simulation. No tiny droplets can move outside this domain; it's as if the fluid is contained within the 3-D space by invisible force fields. Currently (version 2.4.2) there can be only a single fluid simulation domain object in the file. The lengths of the bounding box sides can be different.
这一个物体的盒子边界将会是模拟的界线。 没有极小的水滴能在这一个领域以外移动;流体被强迫在一个看不见的3D空间里. 现在 (2.4.2 版)在一个文件里只能有一个流体模拟领域物体。边界盒子侧面长度可能是不同的。
| Domain Space 领域空间: The shape of the object does not matter because it will always be a fixed cubic of space, so usually there won't be a reason to use any other shape than a box. If you need obstacles or other boundaries than a box to interfere with the fluid flow, you need to insert additional obstacle objects inside the domain boundary.
因为它总是将会一个空间的视为固定立方,物体的形状没有关系, 所以没有理由不用一个盒子而使用任何其他的形状。如果你需要一个障碍物或者其他的界线干扰流体流动,你需要在领域界线内插入加添的障碍物物体。 |
- Resolution
- The granularity at which the actual fluid simulation is performed. This is probably the most important setting for the simulation as it determines the amount of detail in the fluid, the memory and disk usage as well as computational time. Note that the amount of required memory quickly increases: a resolution of 32 requires ca. 4MB, 64 requires ca. 30MB, while 128 already needs more than 230MB. Make sure to set the resolution low enough, depending on how much memory you have, to prevent Blender from crashing or freezing. If the domain is not cubic, the resolution will be taken for the longest side. The resolutions along the other sides will be reduced according to their lengths.
- 清晰度
- 清晰度在现行的流体模拟时完成。流体模拟细节总数的设置或许是最重要,和你存和硬盘使用情况,一起决定计算的时间。注意必需内存的使用率:清晰度 32 要求约5MB,清晰度 64 要求约40MB,清晰度 128 要求约250MB,要确定你的你存大小足够给Blender计算。如果领域不是立方,清晰度将会被当作长的边沿。清晰度沿着其他侧面减少依照他们的长度。
- Preview-Res
- This is the resolution at which the preview surface meshes will be generated. So it does not influence the actual simulation, and even if there is nothing to see in the preview, there might a thin fluid surface that cannot be resolved in the preview.
- 预览-Res。
- 这是清晰度将会预览表面网格时产生。因此它不影响真实的模拟, 和即使没有东西在预览中见到, 可能一个稀薄的的流体表面不能够清晰度地预览。
- Start time
- Simulation time (in seconds) of the first blender frame. So this option makes the animation in Blender start later in the simulation.
- 开始时间
- 在blender第一帧的模拟时间。因此这一个选项使模拟在Blender 开始的动画时间。
- End time
- Simulation time of the last blender frame.
- 结束时间
- 在blender最后的模拟时间。
- Disp.-Qual
- How to display a baked simulation in the Blender GUI (first pulldown menu) and for rendering (second one): original geometry, preview mesh or final mesh. When no baked data is found, the original mesh will be displayed by default.
- 显示质量
- 该如何在 Blender 图形用户接口 (第一个折叠式菜单) 中显示一个烘焙过的模拟作为 rendering:(第二):原始几何物体, 预览网格或最终网格。 当没有烘焙过的数据被发现的时候,原始网格将会显示为默认。
Displaying a Baked Domain 显示一个烘焙过的领域
在你已经烘焙一个领域之后,在Blender窗口被显示为预备的网格 (通常) 。用左键点击可以观察原始领域盒子的大小和范围 。 |
- Bake directory
- Directory and file prefix to store baked surface meshes with. This is similar to the animation output settings, only selecting a file is a bit special: when you select any of the previously generated surface meshes (e.g. untitled_OBcube_fluidsurface_final_0132.bobj.gz) the prefix will be automatically set (untitled_OBcube_ for this example). This way the simulation can be done several times with different settings, and allows quick changes between the different sets of surface data.
- 烘焙目录
- 目录和文件前缀储存烘焙表面网格。这与动画输出设置类似,只不过选择一个特殊的文件:当你选择任何一个先前产生的表面网格的时候,(举例来说untitled_OBcube_fluidsurface_final_0132.bobj.gz), 前缀将会自动地被设定。 (untitled_OBcube_ 作为这一个实例)这样,模拟能好几次被不同的设置时完成,和允许快速的在不同设置的表面数据 之间改变。
- BAKE
- Perform the actual fluid simulation. The blender GUI will freeze and only display the current frame that is simulated. Pressing EscKEY will abort the simulation. Afterwards two .bobj.gz will be in the selected output directory for each frame. Note on freeing the previous baked solutions: Deleting the content of the Bake directory is a destructive way to achieve this, be careful if more than one simulation uses the same bake directory (be sure they use different filenames, or they will overwrite one another).
- 烘焙
- 执行真实的流动模拟。blender图形用户接口将会冻结和只显示目前的模拟的帧。按EscKEY 将会中断模拟。 然后每帧将会以 .bobj.gz保存在选择的输出目录中。释放以前的烘焙过解决方案:删除烘焙目录的内容是一个方法 (但会破坏) 如果超过一个模拟共同使用相同的烘焙目录那你要小心(确定他们使用不同的档名, 或他们将会相互重写)
| Reusing Bakes 重复使用烘焙: Manually entering (or searching for) a previously saved (baked) computational directory and filename mask will switch the fluid flow and mesh deformation to use that which existed during the old bake. Thus, you can re-use baked flows by simply pointing to them in this field.
手动进入 (或寻找) 一个先前保存的(烘过的)计算的目录和文档名mask将会转换流体流动和网格变形使用旧的烘焙数据。 因此,您能再次使用烘焙过的流动数据,简单指定力场。 |
| Selecting a Baked Domain 选择一个烘焙过的领域: After a domain has been baked, it changes to the fluid mesh. To re-select the domain so that you can bake it again after you have made changes, go to any frame and select (right-click) the fluid mesh. Then you can click the Bake button again to recompute the fluid flows inside that domain.
在一个领域已经被烘焙之后,它换成流体网格。再选择领域你能再一次烘焙它,计算完成后,去任何的帧和选择 (右-点击) 流体网格。在那个领域内,你能再次点击Bake按钮去再计算流体流动。 |
St/Ad/Bn-Button St/Ad/Bn-按钮
- Clicking this button will show other panels (Standard/Advanced/Boundary) of more advanced options, that often are fine set at the defaults.
- 点一下这一个钮将会显示更多高级选项的其他面板 (标准/高阶/界线), 时常在内定值是很好的设置.
- Advanced 高级
-
- Gravity vector 重力矢量
- Strength and direction of the gravity acceleration and any lateral (x,y plane) force. The main component should be along the negative z-axis [m/s^2]. All of the x,y,z values should not be zero, or the fluid won't flow (imagine a droplet in space). It must be some small number in at least one direction.
- 重力加速度的强度和方向和任何水平的 (x,y 刨) 的力。 通常主要的物体应该沿着负Z轴 [m/s^2] 。通常这不应该是零。它一定是至少一个方向上的一些小的数值。
- Viscosity 粘度
- The "thickness" of the fluid and actually the the force needed to move an object of a certain surface area through it at a certain speed. You can either enter a value directly or use one of the presets in the drop down (such as honey, oil, or water). For manual entry, please note that real-world viscosity is measured Poiseuille (pronounced "pwazooze") units, and commonly centiPoise ('"sentipwaz"') units (cP). This table should help you correlate real viscosity measurements to Blender entries, but as a rule of thumb, multiply cP by 10^-6 to get Blender Viscosity Units:
- 流体和的 " 厚 " 实际上力需要经过它以一个特定的速率移动特定表面积的一个物体。你能直接地输入一个数值或使用预置值在下滴的液体.(像是蜂蜜,油或水)。 对于手册的说明,请注意真实的粘度是标准的 Poiseuille(显着的 " pwazooze") 单位, 和普遍 百分比('" sentipwaz"') 单位 (cP).这一个表应该帮助你有相互关系的东西实际的粘度测量 在Blender输 入, 但是当一个经验法则,乘以 cP 10^-6 等于 Blender 粘度单位:
| -- Fluid 流体 -- | -- cP units cp单位-- | Blender Units Blender单位 |
|---|---|---|
| Water 水 (20°C) | 1.002 (1x10^0) | 1 x 10^-6 (.000001) |
| Oil 油 SAE 50 | 500 (5x10^2) | 5 x 10^-5 (.00005) |
| Honey 蜂蜜(20°C) | 10,000 (1x10^4) | 2 x 10^-3 (.002) |
| Chocolate Syrup 巧克力糖浆 | 30,000 (3x10^4) | 3 x 10^-3 |
| Ketchup 蕃茄酱 | 100,000(1x10^5) | 1 x 10^-1 |
| Melting Glass 融化的玻璃 | 1x10^15 | 1 x 10^9 |
Thus, manual entries are specified by a floating point number and an exponent. These floating point and exponent entry fields (scientific notation) simplify entering very small or large numbers. The viscosity of water at room temperature is 1.002 cP; so the entry would be 1.002 times 10 to the minus six (10^-6). Hot Glass and melting iron is a fluid, but very thick; you should enter something like 1 x 10^0 as its viscocity (indicating a value of 1x10^6 cP).
因此,手册条目被一个浮点数和一个指数所指定。这些浮点数和指数输入力场(科学的符号)单一输入很小的或大数目.水的粘度在室温是 1.002 cP; 因此输入会是 1.002时为 10的负6次方 (10^-6). 融化的玻璃和熔化的铁是一个流体, 但是很厚的; 你应该进入大约像1 x 10^0 as its viscocity (标志一个值1x106 cP).
- Real-World size 真实世界的大小
- Size of the domain object in the real world in meters (blender units?). If you want to create a glass of water, this might be 0.2 meters, while for a single drop a centimeter (thus 0.01m) will be more suitable. The size set here is for the longest side of the domain bounding box.
- 领域物体在真实的世界大小使用米。 如果你想要产生一杯水,这可能是 0.2 米, 当滴下的时候1厘米 (如 0.01m) 将会更合适。 这里的大小设置是作为领域的边界盒子最长边沿。
- Gridlevel 格子级别
- How many adaptive grid levels to be used during simulation - setting this to -1 will perform automatic selection.
- 多少适合的格子级别在模拟期间被使用 - 设置为 -1 将会执行自动的选择。
- Compressibillity 可压缩性
- If you have problems with large standing fluid regions at high resolution, it might help to reduce this number (note that this will increase computation times).
- 如果你的高分辨率的流体区域有问题, 它可能帮助减少这一个数目。 (注意这将会增加计算时间)
- Domain boundary type settings 领域界线型态设置
- This is the same as for obstacle objects below, it will basically set the six sides of the domain to be either sticky, non-sticky, or somewhere inbetween (this is set by the PartSlipValue).
- 这是相同于障碍物物体下面, 它会基本上设置领域的六个侧面到任一黏性的, 无黏性, 或在某处之间.(这被 PartSlipValue 设定)
- Tracer Particles 跟踪粒子
- Number of tracer particles to be put into the fluid at the beginning of the simulation. To display them create another object with the Particle fluid type, explained below, that uses the same bake directory as the domain.
- 跟踪粒子从进入流体开始模拟的数目。显示他们用粒子流体型态产生另外的一个物体,在下面解释, 领域使用同一的烘焙目录。
- Surface Smoothing 光滑表面
- Amount of smoothing to be applied to the fluid surface. 1.0 is standard, 0 is off, while larger values increase the amount of smoothing.
- 光滑的数量被应用到流体表面。1.0 是标准,0 是关的, 当较大的数值增加光滑的数量。
- Generate & Use SpeedVecs 产生&使用SpeedVecs
- If this button is clicked, no speed vectors will be exported. So by default, speed vectors are generated and stored on disk. They can be used to compute image based motion blur with the compositing nodes.
- 如果这一个按钮被点下,没有速率矢量将会被输出。因此预先设定地,速率矢量被产生和储存在硬盘上。他们能被使用用合成节点计算以图像为基础的运动模糊。
Fluid 流体
All regions of this object that are inside the domain bounding box will be used as actual fluid in the simulation. If you place more than one fluid object inside the domain, they should currently not intersect. Also make sure the surface normals are pointing outwards. In contrast to domain objects, the actual mesh geometry is used for fluid objects.
真实的流体将在所有物体的区域你部领域的边界盒子里模拟。如果你把超过一个流体物体放这个领域,他们应该和当前的不交叉。也确定表面的法线指向外面。与领域物体对比, 目前的网格几何学被使用作为流动物体。
- Volume Init Type 体积Init类型
- Volume Init will initialize the inner part of the object as fluid, this only works for closed objects. Init Shell will only initialize a thin layer for all faces of the mesh, this also works for non closed meshes. Init Both combines volume and shell, the mesh also should be closed. See the picture below.
- 体积Init 将会设定如流体的物体的内部部份初值, 只为封闭的物体工作。Init 外壳只将会为网格的所有面设定一个薄的的层初值,只为非封闭的物体工作。体积和外壳的 Init 的联合, 网格也应该为封闭的物体工作。
See the picture below. 见到下面的照片。
- Initial velocity 初速度
- Speed of the fluid at the beginning of the simulation in meters per second.
- 流体的初速度以米/秒开始模拟。
Obstacle 障碍物
This object will be used as an obstacle in the simulation. As with a fluid object, obstacle objects should currently not intersect. As for fluid objects, the actual mesh geometry is used for obstacles. For objects with a volume, make sure that the normals of the obstacle are calculated correctly, and radiating properly (use the Flip Normal button, Mesh Tools pannel, Editing context [F9]), particularly when using a spinned container. Applying the Modifier Subsurf before baking the simulation could also be a good idea if the mesh is not animated.
模拟时 这一个物件将会作为障碍物使用.流体物体和障碍物物体应该不相交。对于流体的物体,真实的网格几何学被使用作为障碍物。因为和一个体积的物体,确定障碍物的法线正确被计算, 和适当地辐射 (使用倒转法线按钮, 网格工具面板又编辑的上下文 [F9]) , 当使用一个被旋转容器的时候特别显著。在烘焙模拟之前应用Subsurf修改也是一个好主意,如果这个网格是没有做完动画。
- Volume Init Type 体积Init类型
- Same as for a fluid object above.
- 与上面的流体物体相同。
- Boundary Type (see picture below) 边界类型(看下面的图画)
- Determines the stickiness of the obstacle surface.
- 决定障碍物体表面的粘性
- Noslip causes the fluid to stick to the obstacle (zero velocity),
- Noslip 导致流体黏住障碍物 (零速度),
- Free(-slip) allows movement along the obstacle (only zero normal velocity),
- 释放(-滑动)沿着障碍物 (唯一的零正常的速度) 向前运动,
- Part(-slip) mixes both types, with 0 being mostly noslip, and 1 being identical to freeslip. Note that if the mesh is moving, it will be treated as noslip automatically.
- 分开(-滑动)分开 (-船道)混和两种的类型, 由于 0 在大部份 noslip, 和 1 作为 freeslip。注意,如果网格正在移动,它将会自动地被当做 noslip 。
- Animated Mesh 带动画网格
- Click this button if the mesh is animated (e.g. deformed by an armature, shape keys or a lattice). Note that this can be significantly slower, and is not required if the mesh is animated with position or rotation IPOs.
- 如果网格是有动画的,点一下这一个按钮。 (举例来说不成形藉着一个armature, 形状关键帧或一个格子)注意这可能意味着较慢的, 如果网格有位移和旋转的IPO动画,这不是必需的。
- PartSlip Amount PartSlip数量
- Amount of mixing between no- and free-slip above.
- 混合no-和free-slip两者的数量.
Inflow 流入
This object will put fluid into the simulation (think of a water tap).
这一个物体将会把流体进入模拟。 (想到一个水拢头).
- Volume Init Type 体积Init类型
- Same as for a fluid object above.
- 与上面的流体物体相同。
- Initial velocity 初速度
- Speed of the fluid that is created inside of the object.
- 创建物体内部流体的速率.
- Local Inflow Coords 局部流入坐标
- Use local coordinates for the inflow. This can be useful if the inflow objects is moving or rotating.
- 使用局部坐标作为流入。 如果流入物体正在移动或 rotate ,这可能是可用的。
Outflow 流出
Any fluid that enters the region of this object will be deleted (think of a drain). This can be useful in combination with an inflow to prevent the whole domain from filling up.
任何的流体进入这一个物体的区域将会被删除。 (想到一个排水沟).这和流入结合使用防止领域溢出。
- Volume Init Type 体积Init类型
- Same as for a fluid object above.
- 与上面的流体物体相同。
Particle 粒子
This type can be used to display particles created during the simulation. For now only tracers swimming along with the fluid are supported. Note that the object can have any shape, position or type - once the particle button is pressed, a particle systems with the fluid simulation particles will be created for it at the correct position. When moving the original object, it might be necessary to delete the particle system, disable the fluidsim particles, and enable them again. The fluidsim particles are currently also unaffected by any other particle forces or settings.
这一个型态能被使用显示在模拟期间被创建的粒子。对于流体现在只有tracers swimming被支持。注意物体能有任何的形状,位置或类型 - 一旦点击粒子按钮,流体模拟粒子将会在当前位置建立一个粒子系统。 当移动正本物体的时候,可能必删除粒子系统,关闭流体粒子,和再开启它们。 fluidsim 粒子不受被任何其他粒子力场或设置影响的。
- Size Influence
- 大小影响
- The particles can have different sizes, if this value is 0 all are forced to be the same size.
- 粒子能有不同的大小, 如果这一个数值是 0 那会被强迫为相同的尺度。
- Alpha Influence
- Alpha 影响
- If this value is >0, the alpha values of the particles are changed according to their size.
- 如果数值>0,粒子的alpha数值被改变到依照它们的大小.
- Bake directory
- 烘焙目录
- Which simulation run to load the particles from, this should usually have the same value as the fluid domain object (e.g. copy by ctrl-c, ctrl-v).
- 载入粒子到模拟运行从, 这应该通常有流体领域物体相同的数值.(举例来说 拷贝 ctrl -c, ctrl-v)
Examples 例子
Technical Details 技术细节
Fluid animation can take a lot of time - the better you understand how it works, the easier it will be to estimate how the results will look. The algorithm used for Blender's fluid simulation is the Lattice Boltzmann Method (LBM); other fluid algorithms include Navier-Stokes (NS) solvers and Smoothed Particle Hydrodynamics (SPH) methods. LBM lies somewhere between these two. In general, it is really hard for current computers to correctly simulate even a 1-meter tank of water. For simulating a wave crashing through a city, you would probably need one of the most expensive supercomputers you could get, and it might still not work properly, no matter which of the three algorithms above you're using.
流体动画能花费许多时间 - 最好你了解它如何工作,比较容易预计结果将会是如何。Blender 的流动模拟的运算法则是Lattice Boltzmann Method (LBM);其他的流动运算法则包括Navier-Stokes (NS) 解算和Smoothed Particle Hydrodynamics (SPH) 方法了。 LBM 在这些之间某处躺卧二。大体上, 对当前计算到正确模拟一个1米领域的水是缓慢的。为模拟一个波浪撞过过一个都市,你可能需要花费一台或更多的超级计算机,而可能还不一定很好的工作,你使用上面三种算法没有差别。
For Blender's LBM solver, the following things will make the simulation harder to compute:
Blender 的 LBM 解算法 , 下列的物将会使模拟变成更难计算:
- large domains
- 大的领域
- long duration
- 长的延时
- low viscosities
- 低的粘度
- and high velocities.
- 和高的速度。
The viscosity of water is already really low, so especially for low resoltuions, the turbulence of water can not be correctly captured. If you look close, most simulations of fluids in computer graphics do not yet look like real water as of now. Generally, don't rely on the physical settings too much (such as physical domain size or length of the animation in seconds). Rather try to get the overall motion right with a low resolution, and then increase the resolution as much as possible or desired.
水的粘度已经真的低,尤其对于低的resoltuions ,水的紊乱不能正确被捕获.如果你在计算机绘图中看流体的接近又最多模拟尚未从现在起看起来像不动产的水一样。通常, 不要太依靠物理的设置.(像是在次品的物理领域大小或动画的长度)。宁愿从一个低resolution去尝试所有的运动,然后增大resolution到你想要的结果。
Hints 提示
- Don't be surprised, but you'll get whole bunch of mesh (.bobj.gz) files after a simulation. One set for prelim, and another for final. Each set has a .gz file for each frame of the animation. Each file contains the simulation result - so you'll need them. Currently these files will not be automatically deleted, so it is a good idea to e.g. create a dedicated directory to keep simulation results. Doing a fluid simulation is similar to clicking the ANIM button - you currently have to take care of organizing the fluid surface meshes in some directory yourself. If you want to stop using the fluid simulation, you can simply delete all the *fluid*.bobj.gz files.
- 不要感到惊讶, 但是在一个模拟之后你将会得到网格串 (.bobj.gz) 文件。一个预备的设置, 和另一个为最终计算。每个设置有一个作为每个帧动画的的 .gz 文件。每个文件含有模拟结果 - 因此你将会需要他们。现在这些文件将不自动地被删除,因此,它是一个好主意,举例来说产生一个专门的目录保持模拟结果。
做一个流体模拟与点一下类似的 ANIM 按钮 - 你现在组织流体表面网格在你自己的一些目录中。如果你想要停止使用流体模拟, 你能简单地删除所有的 *流体*.bobj.gz 文件。
- Before running a high res simulation that might take hours, check the overall timing first by doing lower resolution runs. Then, do a simulation for a narrow specific time segment (encompassing a frame or two) by
- 高的resolution可能会花上几个小时的模拟时间,先用一个低resolution模拟可减少计算时间。然后, 做一个短时间的模拟 (包含一或二帧).
- Only the bounding box of the domain object is used, but fluid and obstacle objects can be meshes with complex geometries. Very thin might not appear in the simulation, though, if the chosen resolution is too coarse to resolve them (increasing it might thus solve this problem).
- 领域物体只能使用边界盒子,但是流体和障碍物物体可以用复杂的几何网格。很薄的不可能在模拟中看出来, 虽然,如果被选择的resolution是粗糙的而无法溶解他们.(递增它可能解决这一个问题)
- Note that fluid simulation parameters, such as inflow velocity or the active flag can be animated with fluidsim IPOs.
- 注意:流体模拟参数, 像 inflow 速度或活动的旗子能与 fluidsim IPO 一起动画制作。
- Don't try to do a complicated scene all at once. Blender has a powerful compositor that you can use to combine multiple animiations. For example, to produce an animation showing two separate fluid flows while keeping your domain small, render one .avi using the one flow. Then move the domain and render another .avi with the other flow using an alpha channel. Then, composite both .avi's using the compositor's add function. A third .avi is usually the smoke and mist and it is laid on top of everything as well. Add a rain sheet on top of the mist and spry and you'll have quite a storm brewing! And then lightning flashes, trash blowing around, all as separate animations, compositing the total for a truly spectacular result.
- 不要试着在同一个场景计算太复杂的效果。Blender 有一个强大的合成功能,你能使用他合成多个动画。例子, 创建一个小领域的动画含有两个单独的流体流动, 使用一个流程r渲染一个.avi 文件。然后移动领域使用一个流程r渲染另一个.avi 。然后, 合成两者。avi 使用合成的add函数。第三个.avi 通常是烟和雾放置它在顶层。再添加一个暴雨在烟雾最上面,你将会得到一个暴风雨的效果!然后添加闪电,被风刮起的垃圾, 所有的素材单独制作动画, 合成全部作为一个真实而壮观的的结果。
- If you're having trouble, or something isn't working as you think it should - just let me know: send the .blend file and a problem description to =nils at thuerey dot de=.
- 如果你有问题, 结果不是你想要的。告诉我:发通过邮件发给我blend文件和问题的描述情况到=nils at thuerey dot de=。
Limitations & Workarounds 局限 & 工作区
- One domain per blender file (as of Version 2.4.2), but you can have multiple fluid objects. Workaround: For prelims, move the domain around to encompass each fluid flow part, and then for final, scale up the size of the domain to include all fluid objects (but computation will take longer). This is actually a benefit, because it lets you control how much compute time is used by varying the size and location of the domain.
- 一个 blender 文件只包含一个领域 (当做 2.4.2 版) ,但是你能有多个流体物体。工作区:初步的, 到处移动领域包含每个流体流, 然后, 缩放领域的大小包含所有的流体物体.(但是计算会更久)实际上这是一个好方法,因为这会让你改变大小和领域的位置而控制计算的时间。
- If the setup seems to go wrong make sure all the normals are correct (hence enter edit mode, select all, recalculate normals once in a while).
- 如果这步出了问题确定所有的法线是否正确.(因此进入edit mode, 选择所有的, 重新计算法线).
- Currently there's a problem with zero gravity simulation - simply select a very small gravity until this is fixed.
- 现在有零重力的模拟问题 - 简单地选择一个很小的重力到固定为止。
- If an object is inited as volume, it has to be closed, and have an inner side (a plane wont work). To use planes, switch to Init Shell, or extrude the plane.
- 如果一个物体是如体积的 inited, 它必须是封闭的, 和有一个内部的侧面 (一个 plane 不会工作) 。 为了要使用 plane,对 Init Shell改变, 或挤出 plane 。
- Blender freezes after clicking BAKE. Pressing Escape makes it work again after a while - this can happen if the resolution is too high and memory is swapped to hard disk, making everything horribly slow. Reducing the resolution should help in this case.
- Blender 在点一下 BAKE 之后冻结。模拟计算时按Escape退出工作 - 如果resolution太高,内存被交换到硬盘,使计算机变得缓慢。 减少resolution应该在这情况下有帮助。
- Blender crashes after clicking BAKE - this can happen if the resolution is really high and more than 2GB are allocated, causing Blender to crash. Reducing the resolution should also help...
- 在点一下BAKE之后 Blender 当机 - 如果分解真的非常高,超过 2GB内存被分配, 会导致 Blender 当机。减少resolution也应该有帮助。
- The meshes should be closed, so if some parts of e.g. a fluid object are not initialized as fluid in the simulation check that all parts of connected vertices are closed meshes. Unfortunately, the Suzanne (monkey) mesh in Blender is not a closed mesh (the eyes are separate).
- 网格应该是封闭的,因此,如果当模拟时流体物体没有效果,那检查这个流体物体是否是封闭的。不幸地,在 Blender 的 Suzanne(猴子模型) 网格不是一个封闭的网格。 (眼圈是单独的)
- If Blender crashes after clicking BAKE, the resolution is probably too high for your computer.
- 如果在点一下BAKE之后 Blender 当机,resolution或许太高,对于你的计算机来讲。
- If the fluidsimulation exits with an error message (e.g. that the init has failed), make sure you have valid settings for the domain object, e.g. by resetting them to the defaults.
- 如果 fluidsimulation 以一个错误信息 (举例来说 init 已经失败) 退出,为确定你的领域物体的设置是有效的,举例来说重设为它们的默认值。
- If you're still using Version 2.40: On some systems (e.g for Mac OS X) this version of Blender by default installs into a directory with a "+" in the name, e.g. blender-2.40-OSX-10.3+-py2.3-powerpc which causes an error message containing "syntax error in line N" after clicking BAKE. The easiest way to overcome this, is to remove the "+" from the Blender directory name, or enter another output directory. This is fixed in newer versions.
- 如果你仍然正在使用 2.40 版:在一些系统 (举例来说Mac OS X) 这个版本的Blender 安装时会在目录上加上一个“ + ”, 举例来说blender-2.40-OSX-10.3+-py2。在3 powerpc 上,点一下BAKE之后会有 " 语法误差在线牛顿中 " 的错误提示信息。最容易的方法 是把那 "+" 从 Blender 目录名字移开, 或输出另外的一个输出目录。新版本会修正这个问题。
See Also 参见
- Tutorial 1: Very Basic Introduction
- Tutorial 2: The Next Step
- Tutorial 1&2 Gui Changes for newer builds
- Developer documentation (implementation, dependencies,...)
Acknowledgements 致谢
The integration of the fluid simulator was done as a Google Summer-of-Code project. More information about the solver can be found at www.ntoken.com.
These Animations were created with the solver before its integration into blender:
Adaptive Grids,
Interactive Animations.
Thanks to Chris Want for organizing the Blender-SoC projects, and to Jonathan Merrit for mentoring this one! And of course thanks to Google for starting the whole thing...
SoC progress updates were posted here: SoC-Blenderfluid-Blog at PlanetSoC.
The solver itself was developed with help and supervision of the following people:
U. Ruede, T. Pohl, C. Koerner, M. Thies, M. Oechsner and T. Hofmann at the
Department of Computer Science 10 (System Simulation, LSS) in Erlangen, Germany.
|







