当前位置:   article > 正文

ObiFruid创建流体,ObiFruid学习笔记_obi fluid

obi fluid

创建一个简单的Emitter效果

Unity 版本Unity2021 1.18f1c1
ObiFruid版本Obi Fluid v6.43
IDEvs2022
系统版本win 10
撰写日期2022年5月

创建发射器

  1. 创建发射器 在Hierachy面板右键3D>Obi>Obi Slover
  2. 创建发射器 在Hierachy面板右键Obi Slover(刚刚创建的)> 3D>Obi>Obi Emitter
  3. 检查有无OniCollisionWorld这个物体,并挂载上OniCollisionWorld 脚本
  4. 在Obi Slover上检查有无Obi Fixed Updater 脚本,并将场景中全部的Slover拖拽到ObiFixed Updater脚本的Slovers里。
  5. 查看ObiSloer脚本,将Mode修改为 Mode 3D
  6. 点击ObiEmitter,将Blueprint修改为预制的效果蓝图
  7. Collision material可以不填写。
  8. Disk为发射器的形状,Disk为圆盘
  9. 在摄像机上增加Obi Fluid Renderer脚本,将场景中的发射器Emitter拖拽到Particle Renderers变量下
  10. 在太阳(Directional Light)上添加Shadowmap Exposer 脚本,并将全部的发射器拖拽到Particle Renderers下

创建地板

  1. 在模型导入之后见模型修改为可读可写(Read/Write Enabled)
  2. 将模型拖入到场景中去,添加Rigidbody组件
  3. 添加Obi Rigidbody组件
  4. 添加Obi Collider组件
  5. 修改Rigidbody的Is Kinematic 为true
  6. 修改Obi Collider中Material为想要的物理效果,Source Collider为地板的Mesh Collider
  7. 在路径 Obi>Samples>Common>SampleResources>DistanceFields 下有一个DistanceFields右键Creat>Obi>Distance Field,
    将地板的模型的Mesh拖拽到创建的distance field的Input上。并重新生成Generate
  8. 在Obi Collider脚本的Distance Field属性选择为刚刚创建的Distance Field

其他

  1. 如果是球球,需要在发射器上的Obi Particle Renderer组件上取消勾选Render。
  2. Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5。报错这个。修改地板的修改Rigidbody的Is Kinematic 为true。
  3. 如果创建完成之后,液体不能和地板交互,直接穿过去了,检查Obi发射器Obi Emitter的CollisionMaterial Collides category ,以及地板的CollisionMaterial Collides category 是否一致。

脚本介绍

处理器Slover

切换渲染的模式,是3D还是3D
Slover>obi Slover>Slover settings>Mode>Mode 3D

Obi渲染器Obi Particle Renderer

路径 Emitter>Obi Particle Renderer> Render
true在Scene下可以看到
false在Scene下看不到

ParticleColor 显示液体时的颜色

Obi发射器Obi Emitter

路径 ObiEmitter>Obi Emitter
Blueprint 液体的属性(水,石头,岩浆等等)预设的材质
CollisionMaterial 小球的碰撞材质,可以不加
Collides category 设置碰撞的序号标记
Collides with 允许和那些进行物理交互 (在ObiCollider中也有Collides categoryCollides with这两个属性,不理解可以去测一下)
Emission method 发射方式STREAM(流式) BURST(爆发)
Min poll size 发射的最小粒子量,单位是百分比,最大粒子量点击Blueprint查看预制体的Capacity查看最大的粒子数
Speed 发射器的初始速度,速度慢会有一滴一滴的感觉
Lifespan 生命周期,单位秒
Random velocity 随机方向,一般保持默认值
Use shapr Color 生成的粒子由相应的发射器形状的颜色着色。(没看懂保持默认)

发射器形状

路径 创建发射器ObiEmitter>Obi Emitter
可以添加 Cube Disk Edge Sphere Square ,一个发射器可以同时有很多形状

Obi渲染器Obi Particle Renderer

Render 完成渲染之后需要取消勾选,就可以看到水的效果,否是是球球,(true在Scene下可以看到,false在Scene下看不到)
Shader 着色器选择默认
Particle Color 最后渲染出的颜色
Radius SCale 半径衰减,值越高粒子越大

发射体的预制体(发射的蓝图)

选择Obi EmitterBlueprint可以看到,有水,石头,岩浆等等
Capacity 产生的最大粒子数量
Resolution 默认值 (1) 将使用每立方米(每平方米) 1000 个颗粒。
Rest Density 单位内的粒子密度,愈多愈清晰(不清楚,保持默认)可以和Radius SCale一起调整
Smoothing 光滑度
Viscosity 粘度
Syrface Tension
Buoyancy
Atmospheric Drag
Atmospheric Pressure 越小越容易炸开
Vorticity 漩涡
Diffusion

修改完成之后要点击最下面的按钮

摄像机上的脚本 Obi Fluid Renderer

Basic Blending > Thickness Cutoff 液体和模型边缘的距离
Basic Blending > Thickness Downsample 采样
Surface Reconstruction > Blur Radius 越高越真实清晰
Lighting > Smoothness 越高越光滑,高光越明显
Lighting > Ambient MuLtiplier 越高越亮
Reflection > Reflection 反射量
Reflection > Metalness 金属

Refraction > Transparency 控制透明度
Refraction > Absorption 控制透明度,Obi Particle Renderer>Particle Color配合使用
Refraction > Refraction 折射
Refraction > Refraction Downsample 折射

修改发射器的模式

  1. 创建发射器 在Hierachy面板右键3D>Obi>Obi Emitter
  2. 在创建的Obi Emitter上可以看到Disk脚本,Disk是创建的是圆环
  3. 移除Disk脚本,点击Add Component输入Cube来将发射器改为正方形
  4. Cube Disk Edge Sphere Square

其他学习网站

//Unity Obi Fluid教学 来自cg
https://www.cg.com.tw/ObiFluid/
//官方教程
http://obi.virtualmethodstudio.com/manual/6.3/fluidrendering.html

Enoy

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/127889
推荐阅读
相关标签
  

闽ICP备14008679号